Skip to content
b669a73
Compare
Choose a tag to compare

For more information on how to update to the latest version of Meilisearch, read our dedicated guide.

New features

Tenant tokens

We released one of the features most requested by our users: tenant tokens. (#2096) @ManyTheFish

Tenant tokens allow developers to restrict access to documents depending on the end-user making the search request, effectively enabling multi-tenant indexes.

A tenant token is a JWT. It must be generated by combining an API key with a set of permissions and rules the developer wishes to apply to an end user's search.

For more information on tenant tokens, read our dedicated guide.

Auto-batching (experimental)

This version includes the auto-batching feature. (#2005) @MarinPostma

Auto-batching improves indexing speed by batching together consecutive document additions.

Here is a simple way to use it:

meilisearch --enable-auto-batching

This is an experimental feature. Based on user feedback, it might be completely reworked or outright removed in a future release.

You can read more about how to use auto-batching in this discussion.

Breaking changes

  • New dump behavior (#2098) @irevoire
    Importing a dump into an instance with an existing database using --import-dump will throw an error on the CLI. Similar to snapshots, the --ignore-dump-if-db-exists and --ignore-missing-dump flags have been added for dumps.
  • New flag behavior for the CLI (#2068) @MarinPostma
    Affected options: --no-analytics, --schedule-snapshot, --ignore-missing-snapshot, --ignore-snapshot-if-db-exists, --ssl-require-auth, --ssl-resumption, --ssl-tickets
    : meilisearch --no-analytics=true
    : meilisearch --no-analytics
  • Remove armv8 binary from the release assets. Use aarch64 binary instead. (#2136) @curquiza

Enhancements

Fixes

Misc


❤️ Thanks again to our external contributors:

b669a73
Compare
Choose a tag to compare

v0.26.0rc5

Pre-release
Pre-release
81fe65a
Compare
Choose a tag to compare

v0.26.0rc4

Pre-release
Pre-release
5515aa5
Compare
Choose a tag to compare

v0.26.0rc3

Pre-release
Pre-release
bfb375a
Compare
Choose a tag to compare

v0.26.0rc2

Pre-release
Pre-release
  • Fix problem in the format of the uid of the Dump response
  • Fix stats lastUpdate format issue

by @irevoire in #2189

c3e3c90
Compare
Choose a tag to compare

v0.26.0rc1

Pre-release
Pre-release
5890600
Compare
Choose a tag to compare

v0.26.0rc0

Pre-release
Pre-release

For more information on how to update to the latest version of Meilisearch, read our dedicated guide.

New features

Tenant tokens

We released one of the features most requested by our users: tenant tokens. (#2096) @ManyTheFish

Tenant tokens allow developers to restrict access to documents depending on the end-user making the search request, effectively enabling multi-tenant indexes.

A tenant token is a JWT. It must be generated by combining an API key with a set of permissions and rules the developer wishes to apply to an end user's search.

Autobatching (experimental)

This version includes the auto-batching feature. (#2005) @MarinPostma

Auto-batching improves indexing speed by batching together consecutive document additions.

Here is a simple way to use it:

meilisearch --enable-autobatching

This is an experimental feature. Based on user feedback, it might be completely reworked or outright removed in a future release.

You can read more about how to use auto-batching in this discussion.

Breaking changes

  • New dump behavior (#2098) @irevoire
    Importing a dump into an instance with an existing database using --import-dump will throw an error on the CLI. Similar to snapshots, the --ignore-dump-if-db-exists and --ignore-missing-dump flags have been added for dumps.
  • New flag behavior for the CLI (#2068) @MarinPostma
    Affected options: --no-analytics, --schedule-snapshot, --ignore-missing-snapshot, --ignore-snapshot-if-db-exists, --ssl-require-auth, --ssl-resumption, --ssl-tickets
    : meilisearch --no-analytics=true
    : meilisearch --no-analytics
  • Remove armv8 binary from the release assets. Use aarch64 binary instead. (#2136) @curquiza

Enhancements

Fixes

Misc


❤️ Thanks again to our external contributors:

523fb5c
Compare
Choose a tag to compare

Bug fixes

0515c6e
Compare
Choose a tag to compare

Bug fixes

0ad7d38
Compare
Choose a tag to compare

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:

  • public and private keys do not exist anymore and are replaced by two default API Keys: Default Search API Key and Default Admin API Key. They are automatically generated when you first launch MeiliSearch with a master-key.
    🚨 If you are upgrading from a version prior to v0.25.0, you will need to update your code to replace the previous public and private API keys with the newly generated keys to communicate with MeiliSearch.
  • Before, the public key could search and get documents, now the Default Search API Key that replaces it can only be used for searching.
  • The X-MEILI-API-KEY header is replaced by the Authorization: Bearer <apiKey> header.
  • API Key object lists are now returned in a results array.
  • Added management of API Keys via the endpoint /keys for 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 update resource has been renamed to task. The names of existing API routes have also been updated to reflect this change.
  • GET - /indexes/:indexUid/updates and GET - /indexes/:indexUid/updates/:updateId are updated to /indexes/:indexUid/tasks and /indexes/:indexUid/tasks/:taskUid.
  • Tasks are accessible as a resource independent of index
    • GET - /tasks
    • GET - /tasks/:taskUid
  • The task uid is incremented globally and not by index.
  • The task_not_found error has been introduced.
  • The format of the task object has been updated.
    • updateId is now uid.
    • status values are updated. Possible values are: enqueued, processing, succeeded, failed.
    • type is no longer an object. It is now a string containing the values previously held in the now-outdated type.name field.
    • The type field 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 details object is added to contain specific information related to a task payload. This was previously displayed in the type object.
    • An indexUid field is added containing the name of the index where the task is performed.
    • startedProcessingAt is updated to startedAt.
    • processedAt is updated to finishedAt.
    • duration, startedAt, and processedAt now useISO 8601 format.
  • 202 Accepted responses previously returning an updateId now return a summarized task object.
  • The MEILI_MAX_UDB_SIZE environment variable is renamed to MEILI_MAX_TASK_DB_SIZE.
  • The --max-udb-size CLI option is renamed to --max-task-db-size.
  • task object lists are now returned under a results array with the most recent task object 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 meili user, but the root again. It means, by default the data.ms is now / (as for v0.23.1 and before) and not home/meili (as for v0.24.0). We had some issues regarding this, see #1969. @ManyTheFish

Improvements

Fixes

Misc


❤️ Thanks again to our external contributors: