Skip to content
This repository has been archived by the owner on Mar 21, 2024. It is now read-only.

Compression Headers #178

Merged
merged 5 commits into from
Nov 29, 2022
Merged

Compression Headers #178

merged 5 commits into from
Nov 29, 2022

Conversation

gmourier
Copy link
Member

@gmourier gmourier commented Oct 18, 2022

Summary

Compression HTTP headers can be used to improve transfer speed and to reduce bandwidth consumption by sending/receiving compressed, smaller payload.

Send and receive compressed payload, using the Accept-Encoding and Content-Encoding HTTP headers.

Meilisearch supports gzip, deflate and brotli compression methods.

Related to meilisearch/meilisearch#2802


Changes

  • Adds 0178-compression-headers.md specification file

Out Of Scope

This specification does not describe the HTTP Content-Encoding and Accept-Encoding headers. For more information, refer to the related RFCs.


Attention To Reviewers

Describing compression headers in the open API specification does not seem supported yet.

@gmourier gmourier added Draft Feature specification is in draft state. Summary and Motivation parts need to be written. v0.30 Q4:2022 labels Oct 18, 2022
@gmourier gmourier mentioned this pull request Oct 18, 2022
1 task
@gmourier gmourier added Implemented Feature specification has been implemented. OpenAPI Update OpenAPI specification. labels Oct 18, 2022
@gmourier gmourier marked this pull request as ready for review October 18, 2022 22:05
@gmourier gmourier added Ready For Review Feature specification must be reviewed. and removed Draft Feature specification is in draft state. Summary and Motivation parts need to be written. OpenAPI Update OpenAPI specification. labels Oct 18, 2022
Copy link
Member

@curquiza curquiza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve for the basics I understood, but I need Kero to firmly validate

@gmourier
Copy link
Member Author

gmourier commented Oct 19, 2022

The specification details the basics. I didn't want to spend time defining Content-Encoding and Accept-Encoding RFCs 😬 I hope it's enough for now.

Feel free to add details that seem important to you @Kerollmops, if any.

@mou
Copy link

mou commented Oct 19, 2022

Sorry for interfering, but the specification for Accept-Encoding header is more complex. It allows specifying multiple encoding algorithms with the weights corresponding to the order of preference. I believe it is worth leaving at least a link to it.

@gmourier
Copy link
Member Author

Thanks @mou, I will precise that!

Copy link
Member

@Kerollmops Kerollmops left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a short one, and everything looks correct to me 👍

@gmourier gmourier merged commit f5a3900 into release-v0.30.0 Nov 29, 2022
@gmourier gmourier deleted the payload-compression branch November 29, 2022 14:13
@gmourier gmourier removed the Ready For Review Feature specification must be reviewed. label Nov 29, 2022
gmourier added a commit that referenced this pull request Nov 29, 2022
* Bump Meilisearch OpenAPI spec to v0.30.0

* Compression Headers (#178)

* Start specification

* Rename spec file

* Rephrase summary

* Rephrase receiving a compressed response section

* Add links to RFC9910

* Introduce missing_master_key error (#179)

* Update error message (#180)

* Specify the error variant (#181)

* replaces 127.0.0.1 by localhost (#184)

* Configuration File Support (#185)

* init spec file

* Fill-in spec

* Fix typing errors

* adds errors case

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Replace config file by configuration file in the error message

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Add infos.with_configuration_file to telemetry-policies

* Update text/0185-configuration-file.md

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Tamo <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Tamo <[email protected]>

* Update text/0185-configuration-file.md

Co-authored-by: Tamo <[email protected]>

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>
Co-authored-by: Tamo <[email protected]>

* Telemetry - Missing events and options (#186)

* wip spec changes

* update telemetry

* add missing property to the full properties table

* Update text/0034-telemetry-policies.md

Co-authored-by: Tamo <[email protected]>

* Update text/0034-telemetry-policies.md

Co-authored-by: Tamo <[email protected]>

* Add distrinct_attribute.set property, Task Seen becomes an aggregated event, add missing sub settings properties to Settings Updated event

* Add requests.total_received property to Tasks Seen event

* add missing ranking rules metrics

* Update text/0034-telemetry-policies.md

Co-authored-by: Tamo <[email protected]>

* Update text/0034-telemetry-policies.md

Co-authored-by: Tamo <[email protected]>

* Update text/0034-telemetry-policies.md

Co-authored-by: Tamo <[email protected]>

* Precise max-index-size option (#187)

* Tasks API - Rename `receivedDocumentsIds` by `providedIds` (#188)

* Rename receivedDocumentsIds by matchedDocuments

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Clément Renault <[email protected]>

* Add missing env vars, brings consistency (#190)

* Swap Indexes API (#192)

* Add new spec file as draft file

* Add specification file

* update spec

* draft open-api.yml changes

* Add errors

* fix typos

* Add Indexes Swapped event

* duplicate_index_found is synchronous

* Apply suggestions from code review

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>

* Add review suggestions

* Precis mention for tasks indexUid target swap in the history

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update text/0061-error-format-and-definitions.md

Co-authored-by: Clément Renault <[email protected]>

* Update text/0191-swap-indexes-api.md

Co-authored-by: Clément Renault <[email protected]>

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>
Co-authored-by: Clément Renault <[email protected]>

* Add snapshotCreation as a new task type to make it visible in the task history (#193)

* Tasks API - Add task priority order section (#194)

* Add 2.1 Task Priority section

* Precise other tasks priority ordering

* Search API - Page Selection Component (#196)

* Search API - numbered pagination

* Improve numbered pagination explaination

* Update text/0118-search-api.md

* Update text/0118-search-api.md

* Apply suggestions from code review

* Add links

* Update open api

* Add a dot at the end of the title

* Fix links

* Improve page and hitsperpage query params

* Refactor pagination guide

* Fix wording

* Add corner case

* Update open-api.yaml

Co-authored-by: Guillaume Mourier <[email protected]>

* Update open-api.yaml

Co-authored-by: Guillaume Mourier <[email protected]>

* Update open-api.yaml

Co-authored-by: Guillaume Mourier <[email protected]>

* Apply wording changes from code review

Co-authored-by: Guillaume Mourier <[email protected]>

* Apply suggestions from code review

Co-authored-by: Guillaume Mourier <[email protected]>
Co-authored-by: Bruno Casali <[email protected]>

* Fix example

* Apply suggestions from code review

Co-authored-by: Guillaume Mourier <[email protected]>

* Update open-api.yaml

* Update text/0118-search-api.md

* Update links

* Add link to maxtotalhits

* Update text/0118-search-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Improve message in page reference

* Update text/0118-search-api.md

Co-authored-by: Many the fish <[email protected]>

* Add telemetry to know the most used search results navigation methods in a batch

* Update text/0118-search-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0118-search-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

Co-authored-by: Guillaume Mourier <[email protected]>
Co-authored-by: Bruno Casali <[email protected]>
Co-authored-by: Many the fish <[email protected]>

* Tasks API - Add task cancelation capability (#195)

* Add cancel to task spec

* Remove missing error

* Fix typo on cancels

* Fix IndexUid always null

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Add canceledBy and missing_filters error

* Merge 11.1 filter iwth get and 11.2 filter with post

* Specified every date filter

* Change uid as integer and not as string

* Add auto-batching and error

* Add new route task/cancel api-key

* Add global task note

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Update text/0061-error-format-and-definitions.md

Co-authored-by: Guillaume Mourier <[email protected]>

* Modification due to review

* Modification due to review

* Modification due to review

* Modification due to review

* Fix global task link

* Fix format link

* Add open-api modification

* Remove trailing space

* Add clarification

* Add errors definition

* Update open-api.yml

* fix task uid query parameter name

* Fix collission between url path and query parameters

* fmt open-api.yml

* Add telemetry details

* Add 202_taskCancelation example

* Update originalQuery to originalFilters and update missing_task_filter to missing_task_filters

* matchedTasks is computed when the task is enqueued

* Apply suggestions from code review

Co-authored-by: cvermand <[email protected]>

* Apply suggestions from code review

Co-authored-by: cvermand <[email protected]>

* Recall explanation for filter query parameter and mentions that limit and from are valid on

* Fix typo in property name

* Update query paramters name and related error codes when invalid

* Fix missing part of error msg

* Precise valid date formats

* Add supported format for date filters in open-api.yml

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update text/0060-tasks-api.md

Co-authored-by: Clément Renault <[email protected]>

* fix typo

* Update open-api.yaml

Co-authored-by: Clément Renault <[email protected]>

* Update text/0060-tasks-api.md

* Update text/0060-tasks-api.md

* Tasks API - Add task deletion capability (#198)

* Describes task deletion feature additions

* Update open-api.yml

* Update telemetry-policies

* Update originalQuery to originalFilters

* Follow title structure

* Introduce review feedback

* Branch the right components

* Update text/0060-tasks-api.md

Co-authored-by: Clément Renault <[email protected]>

Co-authored-by: Clément Renault <[email protected]>

Co-authored-by: Guillaume Mourier <[email protected]>
Co-authored-by: cvermand <[email protected]>
Co-authored-by: Clément Renault <[email protected]>

* Update the dump support table with the dumpv6 (#199)

* Settings API - Specify handling of null values when patching settings (#202)

* Specify behavior when patching a setting with partial values and null values.

- Partial value: the setting is unchanged.
- null value: the setting is reset to default.

* Settings: Update error messages to accept the null value

* Add missing task types

* Add canceledTasks details

Co-authored-by: Clémentine Urquizar - curqui <[email protected]>
Co-authored-by: Tamo <[email protected]>
Co-authored-by: Clément Renault <[email protected]>
Co-authored-by: cvermand <[email protected]>
Co-authored-by: Bruno Casali <[email protected]>
Co-authored-by: Many the fish <[email protected]>
Co-authored-by: Amélie <[email protected]>
Co-authored-by: Louis Dureuil <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Implemented Feature specification has been implemented. Q4:2022 v0.30
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants