vault / meilisearch / v0.25.0
meilisearch @ v0.25.0
integrity
- size
- 7.1 MiB
- downloaded
- last checked
release notes
This version of MeiliSearch introduces a much-requested feature: API key management.
For more information on how to update to the latest version of MeiliSearch, read our dedicated guide.
⚠️ Warnings
- If you are using filtering, please use v0.25.2 and later instead of v0.25.0
- If you want to use the dump feature, please use v0.25.1 and later instead of v0.25.0
- We are a little bit late regarding the update of our clients with this version. Ensure the package you are using works with v0.25.0 (information available on the README of each package). Sorry for this.
Breaking changes
API Key management
This new feature allows you to manage and restrict the access of API Keys.
Check out our Security and permissions guide.
It also involves breaking changes to how keys are handled currently:
publicandprivatekeys do not exist anymore and are replaced by two default API Keys:Default Search API KeyandDefault Admin API Key. They are automatically generated when you first launch MeiliSearch with amaster-key. 🚨 If you are upgrading from a version prior tov0.25.0, you will need to update your code to replace the previouspublicandprivateAPI keys with the newly generated keys to communicate with MeiliSearch.- Before, the
publickey could search and get documents, now theDefault Search API Keythat replaces it can only be used for searching. - The
X-MEILI-API-KEYheader is replaced by theAuthorization: Bearer <apiKey>header. - API Key object lists are now returned in a
resultsarray. - Added management of API Keys via the endpoint
/keysfor the master-key holder.- Keys can be created/updated/deleted/listed and fetched.
- Keys can be restricted to certain actions on specific indexes.
- Keys can expire at a defined time.
@ManyTheFish
Task API
To improve user understanding and experience, we refashioned MeiliSearch's asynchronous updates:
- The
updateresource has been renamed totask. The names of existing API routes have also been updated to reflect this change. GET - /indexes/:indexUid/updatesandGET - /indexes/:indexUid/updates/:updateIdare updated to/indexes/:indexUid/tasksand/indexes/:indexUid/tasks/:taskUid.- Tasks are accessible as a resource independent of index
GET - /tasksGET - /tasks/:taskUid
- The task
uidis incremented globally and not by index. - The
task_not_founderror has been introduced. - The format of the
taskobject has been updated.updateIdis nowuid.statusvalues are updated. Possible values are:enqueued,processing,succeeded,failed.typeis no longer an object. It is now a string containing the values previously held in the now-outdatedtype.namefield.- The
typefield values have been updated to be more clear and consistent with our naming rules. Possible values are:indexCreation,indexUpdate,indexDeletion,documentsAddition,documentsPartial,documentsDeletion,settingsUpdate,clearAll. - A
detailsobject is added to contain specific information related to ataskpayload. This was previously displayed in thetypeobject. - An
indexUidfield is added containing the name of the index where the task is performed. startedProcessingAtis updated tostartedAt.processedAtis updated tofinishedAt.duration,startedAt, andprocessedAtnow useISO 8601format.
202 Acceptedresponses previously returning anupdateIdnow return a summarizedtaskobject.- The
MEILI_MAX_UDB_SIZEenvironment variable is renamed toMEILI_MAX_TASK_DB_SIZE. - The
--max-udb-sizeCLI option is renamed to--max-task-db-size. taskobject lists are now returned under aresultsarray with the most recenttaskobject displayed first.
@MarinPostma, @irevoire
More about asynchronous tasks. Also check out the task API references.
Other breaking changes
- Creating, updating, and deleting indexes are now asynchronous operations. This removes potential race conditions that existed before. @MarinPostma
- MeiliSearch v0.25 and subsequent releases are not compatible with dumps created prior to v0.22.
- To migrate a dump from pre-v0.22 to v0.25 MeiliSearch, first load your dump into v0.24.0, create a dump using v0.24.0, and then import this dump into v0.25.0.
- Revert change from v0.24.0: the Docker image does not run using the
meiliuser, but therootagain. It means, by default thedata.msis now/(as for v0.23.1 and before) and nothome/meili(as for v0.24.0). We had some issues regarding this, see https://github.com/meilisearch/MeiliSearch/issues/1969. @ManyTheFish
Improvements
matchesnow works with numerical values (#1893) @Thearas- New errors:
missing_parameter,invalid_api_key_description,invalid_api_key_actions,invalid_api_key_indexes,invalid_api_key_expires_at,api_key_not_found. - Add MeiliSearch ARM image for Docker (#1897) @curquiza
- Improve error messages on filter parsing (https://github.com/meilisearch/milli/pull/400) @irevoire
- Improve Hangul Tokenization (https://github.com/meilisearch/tokenizer/pull/60) @datamaker
- Improve tokenization: get size of char after normalization (https://github.com/meilisearch/tokenizer/pull/59) @Samyak2
Fixes
- Accept charset in the Content-Type header (#1933) @Kerollmops
- Fix phrase search that does not match documents as expected (https://github.com/meilisearch/milli/pull/419) @ManyTheFish
- Fix indexes being deleted when
data.msis not compatible with a MeiliSearch version (https://github.com/meilisearch/MeiliSearch/pull/1965) @irevoire - Fix Snapshot file permissions (https://github.com/meilisearch/MeiliSearch/pull/1960) @MarinPostma
- Fix download-latest.sh (https://github.com/meilisearch/MeiliSearch/pull/1976) @Mcdostone
Misc
- Remove email address from the launch message (#1896) @curquiza
- Remove release drafter workflow (#1882) @curquiza
- Remove Hacktoberfest section from CONTRIBUTING.md (#1884) @meili-bot
- Telemetry changes (#1938, #1939, #1941, #1942, #1947) @irevoire
❤️ Thanks again to our external contributors:
- MeiliSearch: @Mcdostone and @Thearas
- Tokenizer: @datamaker and @Samyak2
download
unix · zip
curl -fL -o v0.25.0.zip https://ratatoskr.space/pkg/meilisearch/v0.25.0.zip
printf '%s %s\n' '6568f73aab177eef268d830b7fc953adfb1042682889b53190f0c04831f4a4a1' 'v0.25.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v0.25.0.zip"
$out = "v0.25.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6568f73aab177eef268d830b7fc953adfb1042682889b53190f0c04831f4a4a1") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.25.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v0.25.0.tar.gz
printf '%s %s\n' 'b1737d48a66988902c589d2c77b959a18e8f6ff227e3e77dfb6791fe1e02fdf1' 'v0.25.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v0.25.0.tar.gz"
$out = "v0.25.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "b1737d48a66988902c589d2c77b959a18e8f6ff227e3e77dfb6791fe1e02fdf1") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.25.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.zip
printf '%s %s\n' '6568f73aab177eef268d830b7fc953adfb1042682889b53190f0c04831f4a4a1' 'v0.25.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.zip"
$out = "v0.25.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6568f73aab177eef268d830b7fc953adfb1042682889b53190f0c04831f4a4a1") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.25.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.tar.gz
printf '%s %s\n' 'b1737d48a66988902c589d2c77b959a18e8f6ff227e3e77dfb6791fe1e02fdf1' 'v0.25.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.tar.gz"
$out = "v0.25.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "b1737d48a66988902c589d2c77b959a18e8f6ff227e3e77dfb6791fe1e02fdf1") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.25.0.zip | zip | 7.1 MiB |
blake3-24 dcaa907c53527f0935ae1914b7f8421e177d1b39f1d69c55
sha256 6568f73aab177eef268d830b7fc953adfb1042682889b53190f0c04831f4a4a1
sha1 b71ea6ceb4c81d024d99c921cb99d90b38be41b1
|
| v0.25.0.tar.gz | tar.gz | 7.0 MiB |
blake3-24 9802d8c2078a8b1bc405c985a06d0bed308df70c79603d5e
sha256 b1737d48a66988902c589d2c77b959a18e8f6ff227e3e77dfb6791fe1e02fdf1
sha1 06f17b92af8659312643b4b9bb7845f14deb89e2
|
install
bazel
http_archive(
name = "meilisearch",
urls = ["https://ratatoskr.space/pkg/meilisearch/v0.25.0.tar.gz"],
integrity = "sha256-sXN9SKZpiJAsWJ0sd7lZoY6Pb/In4+d9+2eR/h4C/fE=",
strip_prefix = "meilisearch-v0.25.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v0.25.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "meilisearch",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.tar.gz"],
integrity = "sha256-sXN9SKZpiJAsWJ0sd7lZoY6Pb/In4+d9+2eR/h4C/fE=",
strip_prefix = "meilisearch-v0.25.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.25.0.tar.gz",