Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update key management v0.28 #1266

Merged
merged 9 commits into from
Jun 22, 2022

Conversation

bidoubiwa
Copy link
Contributor

⚠️ Some tests are skipped because of an issue in the v0.28.0rc0

Changes related to the keys management

Related to:
issue: meilisearch/meilisearch#2442
issue: meilisearch/meilisearch#2369

  • GET /keys/:uid_or_key can receive either a :uid or :key to find the key, not just the :key how it used to be.
  • Add the possibility to specify :uid to generate deterministic API keys if null Meilisearch generates one. It must be a UUID v4 value.
  • Add a :name attribute to the resource (can be null).
  • Add new values to the actions attribute: keys.get, keys.create, keys.update and keys.delete.
  • PATCH /keys/:uid_or_key can update only name and description fields.

@bidoubiwa bidoubiwa added the breaking-change The related changes are breaking for the users label Jun 20, 2022
@bidoubiwa bidoubiwa requested review from brunoocasali and mdubus June 20, 2022 10:35
@bidoubiwa bidoubiwa changed the base branch from main to update_documents_method_v0.28 June 20, 2022 10:35
@bidoubiwa bidoubiwa force-pushed the update_key_management_v0.28 branch from 5de1bd2 to 02dadae Compare June 20, 2022 10:39
src/types/types.ts Show resolved Hide resolved
tests/keys.test.ts Outdated Show resolved Hide resolved
Copy link
Member

@brunoocasali brunoocasali left a comment

Choose a reason for hiding this comment

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

Good work! 🎉

tests/keys.test.ts Outdated Show resolved Hide resolved
tests/keys.test.ts Outdated Show resolved Hide resolved
actions: ['documents.add'],
indexes: ['products'],
expiresAt: '2050-11-13T00:00:00Z', // Test will fail in 2050
const customKeys = keys.results.filter(
Copy link
Member

Choose a reason for hiding this comment

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

Why not just remove every key?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I would lose the admin key and the search key that are used in other tests! I would have to re-create ones in every test

Copy link
Member

Choose a reason for hiding this comment

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

Yes, this way you can ensure each of your tests will have what they need no matter what is the state of your Meilisearch instance.

But since this could be led to a lot of changes I don't expect that for now, but could be in the future if you agree :)

@bidoubiwa bidoubiwa requested a review from mdubus June 21, 2022 09:33
Copy link
Member

@mdubus mdubus left a comment

Choose a reason for hiding this comment

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

LGTM 🔥

@bidoubiwa bidoubiwa force-pushed the update_documents_method_v0.28 branch from 6801047 to ce300a1 Compare June 21, 2022 10:04
Copy link
Member

@brunoocasali brunoocasali left a comment

Choose a reason for hiding this comment

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

🎉

Base automatically changed from update_documents_method_v0.28 to bump-meilisearch-v0.28.0 June 22, 2022 09:22
@bidoubiwa bidoubiwa force-pushed the update_key_management_v0.28 branch from f4f6c34 to 0aa0749 Compare June 22, 2022 09:29
@bidoubiwa bidoubiwa merged commit e1864ab into bump-meilisearch-v0.28.0 Jun 22, 2022
@bidoubiwa bidoubiwa deleted the update_key_management_v0.28 branch June 22, 2022 09:33
meili-bors bot added a commit that referenced this pull request Jul 11, 2022
1294: Update version for the next release (v0.27.0) r=bidoubiwa a=bidoubiwa

This version makes this package compatible with Meilisearch v0.28.0 🎉
Check out the changelog of [Meilisearch v0.28.0](https://github.com/meilisearch/meilisearch/releases/tag/v0.28.0) for more information on the changes.

## 💥 Breaking changes

- `client.updateKey(key: string, options: KeyPayload): Promise<Key>` now can just update the `description` and/or the name. #1266
- The type `EnqueuedTask` now returns an `taskUid` instead of an `uid`
- `client.getTasks(...)` and `index.getTasks()` now returns a  TasksResults type containing the following fields: `results`, `limit`, `from`, `next`  #1269 
- `index.search` changes in the response parameters: #1263
    - `nbHits` replaced with `estimatedTotalHits`
    - `exhaustiveNbHits` is deleted
    - `exhaustiveFacetsCount` is deleted
- `index.search` changes in the request parameters:  #1263
    -  `matches` renamed `showMatchesPosition`
    -  `_matchesInfo` response parameter is renamed `_matchesPosition`
    - `facetsDistribution` request parameter is renamed `facets`.
    -  `facetsDistribution` response parameter is renamed `facetDistribution`.
- The `Index` type and returned `IndexObject` does not contain a `name` field anymore
- `client.getIndexes` and `client.getRawIndexes` now returns an `IndexesResults` type containing the following fields: `results`, `limit`, `offset`, `total` #1269
- `index.getDocuments` and `client.getDocuments` now returns an `DocumentsResults` type containing the following fields: `results`, `limit`, `offset`, `total` #1269
- `index.getDocuments` and `index.getDocument`  query parameter `attributesToRetrieve` is now called `fields` #1264
- `client.getDumpStatus` has been removed #1267
- `client.createDump()` now returns an `EnqueuedTask` #1267
- `client.generateTenantToken(apiKeyUid, searchRules, options)` has now a mandatory `apiKeyUid` parameter which should contain the uid of a specific API key. #1268  


## 🚀 Enhancements

- `client.getKeys(parameters: KeysQuery  = {})` now accepts pagination parameters: `limit`, `offset` #1269 
- `client.getKey(keyOrUid: string)` can now also find keys based on their key uid. #1266 
- `client.createKey(options: KeyCreation)` lets you specify a custom uid (optionally) to create a new Key #1269
- The returned `Key` now has an additional `name` and `uid` string fields. #1266 
- The `indexUid` field in both `EnqueuedTask` and `Task` can be null #1259 
- `client.getTasks(parameters: TasksQuery = {})` and   `index.getTasks(parameters: TasksQuery)` now accepts pagination parameters: `limit`, `from`, `next` and filters parameters: `type`, `status`, `indexUid` (same for `index.getTasks`) #1269 
- `client.getIndexes` and `client.getRawIndexes` now accepts pagination parameters: `limit`, `offset` #1269 
- `index.getDocuments` now accepts pagination parameters: `limit`, `offset` #1269 
- `new MeiliSearch({ host, apiKey, headers, clientAgents })` now accept a new parameter `clientAgents` that should contain the agent from which the library is used. #1272

Analytics is enabled by default in the server, but you can disable them by following [this guide](https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html#how-to-disable-data-collection)
Also, of course, every analytics data we collect are **ANONYMOUS** [read the guide for more information](https://docs.meilisearch.com/learn/what_is_meilisearch/telemetry.html).

Thanks again to `@bidoubiwa` ! 🎉

Co-authored-by: Charlotte Vermandel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change The related changes are breaking for the users
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants