Skip to content

Commit 5f00d26

Browse files
authored
add preference field to SavedObjectsFindOptions (#68620)
1 parent 4b1b475 commit 5f00d26

12 files changed

+45
-4
lines changed

docs/development/core/public/kibana-plugin-core-public.savedobjectsfindoptions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export interface SavedObjectsFindOptions extends SavedObjectsBaseOptions
2121
| [hasReference](./kibana-plugin-core-public.savedobjectsfindoptions.hasreference.md) | <code>{</code><br/><code> type: string;</code><br/><code> id: string;</code><br/><code> }</code> | |
2222
| [page](./kibana-plugin-core-public.savedobjectsfindoptions.page.md) | <code>number</code> | |
2323
| [perPage](./kibana-plugin-core-public.savedobjectsfindoptions.perpage.md) | <code>number</code> | |
24+
| [preference](./kibana-plugin-core-public.savedobjectsfindoptions.preference.md) | <code>string</code> | An optional ES preference value to be used for the query \* |
2425
| [search](./kibana-plugin-core-public.savedobjectsfindoptions.search.md) | <code>string</code> | Search documents using the Elasticsearch Simple Query String syntax. See Elasticsearch Simple Query String <code>query</code> argument for more information |
2526
| [searchFields](./kibana-plugin-core-public.savedobjectsfindoptions.searchfields.md) | <code>string[]</code> | The fields to perform the parsed query against. See Elasticsearch Simple Query String <code>fields</code> argument for more information |
2627
| [sortField](./kibana-plugin-core-public.savedobjectsfindoptions.sortfield.md) | <code>string</code> | |
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [SavedObjectsFindOptions](./kibana-plugin-core-public.savedobjectsfindoptions.md) &gt; [preference](./kibana-plugin-core-public.savedobjectsfindoptions.preference.md)
4+
5+
## SavedObjectsFindOptions.preference property
6+
7+
An optional ES preference value to be used for the query \*
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
preference?: string;
13+
```

docs/development/core/server/kibana-plugin-core-server.savedobjectsfindoptions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export interface SavedObjectsFindOptions extends SavedObjectsBaseOptions
2121
| [hasReference](./kibana-plugin-core-server.savedobjectsfindoptions.hasreference.md) | <code>{</code><br/><code> type: string;</code><br/><code> id: string;</code><br/><code> }</code> | |
2222
| [page](./kibana-plugin-core-server.savedobjectsfindoptions.page.md) | <code>number</code> | |
2323
| [perPage](./kibana-plugin-core-server.savedobjectsfindoptions.perpage.md) | <code>number</code> | |
24+
| [preference](./kibana-plugin-core-server.savedobjectsfindoptions.preference.md) | <code>string</code> | An optional ES preference value to be used for the query \* |
2425
| [search](./kibana-plugin-core-server.savedobjectsfindoptions.search.md) | <code>string</code> | Search documents using the Elasticsearch Simple Query String syntax. See Elasticsearch Simple Query String <code>query</code> argument for more information |
2526
| [searchFields](./kibana-plugin-core-server.savedobjectsfindoptions.searchfields.md) | <code>string[]</code> | The fields to perform the parsed query against. See Elasticsearch Simple Query String <code>fields</code> argument for more information |
2627
| [sortField](./kibana-plugin-core-server.savedobjectsfindoptions.sortfield.md) | <code>string</code> | |
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [SavedObjectsFindOptions](./kibana-plugin-core-server.savedobjectsfindoptions.md) &gt; [preference](./kibana-plugin-core-server.savedobjectsfindoptions.preference.md)
4+
5+
## SavedObjectsFindOptions.preference property
6+
7+
An optional ES preference value to be used for the query \*
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
preference?: string;
13+
```

docs/development/core/server/kibana-plugin-core-server.savedobjectsrepository.find.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
<b>Signature:</b>
88

99
```typescript
10-
find<T = unknown>({ search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, }: SavedObjectsFindOptions): Promise<SavedObjectsFindResponse<T>>;
10+
find<T = unknown>({ search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, preference, }: SavedObjectsFindOptions): Promise<SavedObjectsFindResponse<T>>;
1111
```
1212

1313
## Parameters
1414

1515
| Parameter | Type | Description |
1616
| --- | --- | --- |
17-
| { search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, } | <code>SavedObjectsFindOptions</code> | |
17+
| { search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, preference, } | <code>SavedObjectsFindOptions</code> | |
1818

1919
<b>Returns:</b>
2020

docs/development/core/server/kibana-plugin-core-server.savedobjectsrepository.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export declare class SavedObjectsRepository
2323
| [delete(type, id, options)](./kibana-plugin-core-server.savedobjectsrepository.delete.md) | | Deletes an object |
2424
| [deleteByNamespace(namespace, options)](./kibana-plugin-core-server.savedobjectsrepository.deletebynamespace.md) | | Deletes all objects from the provided namespace. |
2525
| [deleteFromNamespaces(type, id, namespaces, options)](./kibana-plugin-core-server.savedobjectsrepository.deletefromnamespaces.md) | | Removes one or more namespaces from a given multi-namespace saved object. If no namespaces remain, the saved object is deleted entirely. This method and \[<code>addToNamespaces</code>\][SavedObjectsRepository.addToNamespaces()](./kibana-plugin-core-server.savedobjectsrepository.addtonamespaces.md) are the only ways to change which Spaces a multi-namespace saved object is shared to. |
26-
| [find({ search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, })](./kibana-plugin-core-server.savedobjectsrepository.find.md) | | |
26+
| [find({ search, defaultSearchOperator, searchFields, hasReference, page, perPage, sortField, sortOrder, fields, namespace, type, filter, preference, })](./kibana-plugin-core-server.savedobjectsrepository.find.md) | | |
2727
| [get(type, id, options)](./kibana-plugin-core-server.savedobjectsrepository.get.md) | | Gets a single object |
2828
| [incrementCounter(type, id, counterFieldName, options)](./kibana-plugin-core-server.savedobjectsrepository.incrementcounter.md) | | Increases a counter field by one. Creates the document if one doesn't exist for the given id. |
2929
| [update(type, id, attributes, options)](./kibana-plugin-core-server.savedobjectsrepository.update.md) | | Updates an object |

src/core/public/public.api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,7 @@ export interface SavedObjectsFindOptions extends SavedObjectsBaseOptions {
12831283
page?: number;
12841284
// (undocumented)
12851285
perPage?: number;
1286+
preference?: string;
12861287
search?: string;
12871288
searchFields?: string[];
12881289
// (undocumented)

src/core/public/saved_objects/saved_objects_client.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ export class SavedObjectsClient {
292292
sortField: 'sort_field',
293293
type: 'type',
294294
filter: 'filter',
295+
preference: 'preference',
295296
};
296297

297298
const renamedQuery = renameKeys<SavedObjectsFindOptions, any>(renameMap, options);

src/core/server/saved_objects/service/lib/repository.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2017,6 +2017,11 @@ describe('SavedObjectsRepository', () => {
20172017
});
20182018
});
20192019

2020+
it(`accepts preference`, async () => {
2021+
await findSuccess({ type, preference: 'pref' });
2022+
expectClusterCallArgs({ preference: 'pref' });
2023+
});
2024+
20202025
it(`can filter by fields`, async () => {
20212026
await findSuccess({ type, fields: ['title'] });
20222027
expectClusterCallArgs({

src/core/server/saved_objects/service/lib/repository.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,7 @@ export class SavedObjectsRepository {
576576
* @property {Array<string>} [options.fields]
577577
* @property {string} [options.namespace]
578578
* @property {object} [options.hasReference] - { type, id }
579+
* @property {string} [options.preference]
579580
* @returns {promise} - { saved_objects: [{ id, type, version, attributes }], total, per_page, page }
580581
*/
581582
async find<T = unknown>({
@@ -591,6 +592,7 @@ export class SavedObjectsRepository {
591592
namespace,
592593
type,
593594
filter,
595+
preference,
594596
}: SavedObjectsFindOptions): Promise<SavedObjectsFindResponse<T>> {
595597
if (!type) {
596598
throw SavedObjectsErrorHelpers.createBadRequestError(
@@ -638,6 +640,7 @@ export class SavedObjectsRepository {
638640
_source: includedFields(type, fields),
639641
ignore: [404],
640642
rest_total_hits_as_int: true,
643+
preference,
641644
body: {
642645
seq_no_primary_term: true,
643646
...getSearchDsl(this._mappings, this._registry, {

0 commit comments

Comments
 (0)