Skip to content

Commit bbb51b5

Browse files
authored
[7.9] Revert add support for version on create & bulkCreate when overwriting a document (#76280)
* Revert "Fix more broken usages of `bulkCreate` (#76005) (#76131)" This reverts commit 44a017b. * Revert "Filter saved object `version` during legacy import (#75597) (#75793)" This reverts commit 6e82885. * Revert "[7.9] [Saved objects] Add support for version on create & bulkCreate when overwriting a document (#75172) (#75498)" This reverts commit 00836e5.
1 parent 2eb8e69 commit bbb51b5

File tree

17 files changed

+19
-145
lines changed

17 files changed

+19
-145
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,4 @@ export interface SavedObjectsBulkCreateObject<T = unknown>
2020
| [migrationVersion](./kibana-plugin-core-server.savedobjectsbulkcreateobject.migrationversion.md) | <code>SavedObjectsMigrationVersion</code> | Information about the migrations that have been applied to this SavedObject. When Kibana starts up, KibanaMigrator detects outdated documents and migrates them based on this value. For each migration that has been applied, the plugin's name is used as a key and the latest migration version as the value. |
2121
| [references](./kibana-plugin-core-server.savedobjectsbulkcreateobject.references.md) | <code>SavedObjectReference[]</code> | |
2222
| [type](./kibana-plugin-core-server.savedobjectsbulkcreateobject.type.md) | <code>string</code> | |
23-
| [version](./kibana-plugin-core-server.savedobjectsbulkcreateobject.version.md) | <code>string</code> | |
2423

docs/development/core/server/kibana-plugin-core-server.savedobjectsbulkcreateobject.version.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,4 @@ export interface SavedObjectsCreateOptions extends SavedObjectsBaseOptions
2020
| [overwrite](./kibana-plugin-core-server.savedobjectscreateoptions.overwrite.md) | <code>boolean</code> | Overwrite existing documents (defaults to false) |
2121
| [references](./kibana-plugin-core-server.savedobjectscreateoptions.references.md) | <code>SavedObjectReference[]</code> | |
2222
| [refresh](./kibana-plugin-core-server.savedobjectscreateoptions.refresh.md) | <code>MutatingOperationRefreshSetting</code> | The Elasticsearch Refresh setting for this operation |
23-
| [version](./kibana-plugin-core-server.savedobjectscreateoptions.version.md) | <code>string</code> | An opaque version number which changes on each successful write operation. Can be used in conjunction with <code>overwrite</code> for implementing optimistic concurrency control. |
2423

docs/development/core/server/kibana-plugin-core-server.savedobjectscreateoptions.version.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/core/server/saved_objects/import/import_saved_objects.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import {
2525
SavedObjectsImportOptions,
2626
} from './types';
2727
import { validateReferences } from './validate_references';
28-
import { SavedObject } from '../types';
2928

3029
/**
3130
* Import saved objects from given stream. See the {@link SavedObjectsImportOptions | options} for more
@@ -68,7 +67,7 @@ export async function importSavedObjectsFromStream({
6867
}
6968

7069
// Create objects in bulk
71-
const bulkCreateResult = await savedObjectsClient.bulkCreate(omitVersion(filteredObjects), {
70+
const bulkCreateResult = await savedObjectsClient.bulkCreate(filteredObjects, {
7271
overwrite,
7372
namespace,
7473
});
@@ -83,7 +82,3 @@ export async function importSavedObjectsFromStream({
8382
...(errorAccumulator.length ? { errors: errorAccumulator } : {}),
8483
};
8584
}
86-
87-
export function omitVersion(objects: SavedObject[]): SavedObject[] {
88-
return objects.map(({ version, ...object }) => object);
89-
}

src/core/server/saved_objects/import/resolve_import_errors.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import {
2626
SavedObjectsResolveImportErrorsOptions,
2727
} from './types';
2828
import { validateReferences } from './validate_references';
29-
import { omitVersion } from './import_saved_objects';
3029

3130
/**
3231
* Resolve and return saved object import errors.
@@ -92,7 +91,7 @@ export async function resolveSavedObjectsImportErrors({
9291
// Bulk create in two batches, overwrites and non-overwrites
9392
const { objectsToOverwrite, objectsToNotOverwrite } = splitOverwrites(filteredObjects, retries);
9493
if (objectsToOverwrite.length) {
95-
const bulkCreateResult = await savedObjectsClient.bulkCreate(omitVersion(objectsToOverwrite), {
94+
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToOverwrite, {
9695
overwrite: true,
9796
namespace,
9897
});
@@ -103,12 +102,9 @@ export async function resolveSavedObjectsImportErrors({
103102
successCount += bulkCreateResult.saved_objects.filter((obj) => !obj.error).length;
104103
}
105104
if (objectsToNotOverwrite.length) {
106-
const bulkCreateResult = await savedObjectsClient.bulkCreate(
107-
omitVersion(objectsToNotOverwrite),
108-
{
109-
namespace,
110-
}
111-
);
105+
const bulkCreateResult = await savedObjectsClient.bulkCreate(objectsToNotOverwrite, {
106+
namespace,
107+
});
112108
errorAccumulator = [
113109
...errorAccumulator,
114110
...extractErrors(bulkCreateResult.saved_objects, objectsToNotOverwrite),

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

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -472,16 +472,8 @@ describe('SavedObjectsRepository', () => {
472472
{ method, _index = expect.any(String), getId = () => expect.any(String) }
473473
) => {
474474
const body = [];
475-
for (const { type, id, if_primary_term: ifPrimaryTerm, if_seq_no: ifSeqNo } of objects) {
476-
body.push({
477-
[method]: {
478-
_index,
479-
_id: getId(type, id),
480-
...(ifPrimaryTerm && ifSeqNo
481-
? { if_primary_term: expect.any(Number), if_seq_no: expect.any(Number) }
482-
: {}),
483-
},
484-
});
475+
for (const { type, id } of objects) {
476+
body.push({ [method]: { _index, _id: getId(type, id) } });
485477
body.push(expect.any(Object));
486478
}
487479
expectClusterCallArgs({ body });
@@ -537,27 +529,6 @@ describe('SavedObjectsRepository', () => {
537529
expectClusterCallArgsAction([obj1, obj2], { method: 'index' });
538530
});
539531

540-
it(`should use the ES index method with version if ID and version are defined and overwrite=true`, async () => {
541-
await bulkCreateSuccess(
542-
[
543-
{
544-
...obj1,
545-
version: mockVersion,
546-
},
547-
obj2,
548-
],
549-
{ overwrite: true }
550-
);
551-
552-
const obj1WithSeq = {
553-
...obj1,
554-
if_seq_no: mockVersionProps._seq_no,
555-
if_primary_term: mockVersionProps._primary_term,
556-
};
557-
558-
expectClusterCallArgsAction([obj1WithSeq, obj2], { method: 'index' });
559-
});
560-
561532
it(`should use the ES create method if ID is defined and overwrite=false`, async () => {
562533
await bulkCreateSuccess([obj1, obj2]);
563534
expectClusterCallArgsAction([obj1, obj2], { method: 'create' });
@@ -1487,15 +1458,6 @@ describe('SavedObjectsRepository', () => {
14871458
expectClusterCalls('index');
14881459
});
14891460

1490-
it(`should use the ES index with version if ID and version are defined and overwrite=true`, async () => {
1491-
await createSuccess(type, attributes, { id, overwrite: true, version: mockVersion });
1492-
expectClusterCalls('index');
1493-
expectClusterCallArgs({
1494-
if_seq_no: mockVersionProps._seq_no,
1495-
if_primary_term: mockVersionProps._primary_term,
1496-
});
1497-
});
1498-
14991461
it(`should use the ES create action if ID is defined and overwrite=false`, async () => {
15001462
await createSuccess(type, attributes, { id });
15011463
expectClusterCalls('create');

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

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ export class SavedObjectsRepository {
220220
overwrite = false,
221221
references = [],
222222
refresh = DEFAULT_REFRESH_SETTING,
223-
version,
224223
} = options;
225224

226225
if (!this._allowedTypes.includes(type)) {
@@ -261,7 +260,6 @@ export class SavedObjectsRepository {
261260
index: this.getIndexForType(type),
262261
refresh,
263262
body: raw._source,
264-
...(overwrite && version ? decodeRequestVersion(version) : {}),
265263
});
266264

267265
return this._rawToSavedObject<T>({
@@ -341,12 +339,7 @@ export class SavedObjectsRepository {
341339

342340
let savedObjectNamespace;
343341
let savedObjectNamespaces;
344-
let versionProperties;
345-
const {
346-
esRequestIndex,
347-
object: { version, ...object },
348-
method,
349-
} = expectedBulkGetResult.value;
342+
const { esRequestIndex, object, method } = expectedBulkGetResult.value;
350343
if (esRequestIndex !== undefined) {
351344
const indexFound = bulkGetResponse.status !== 404;
352345
const actualResult = indexFound ? bulkGetResponse.docs[esRequestIndex] : undefined;
@@ -363,14 +356,12 @@ export class SavedObjectsRepository {
363356
};
364357
}
365358
savedObjectNamespaces = getSavedObjectNamespaces(namespace, docFound && actualResult);
366-
versionProperties = getExpectedVersionProperties(version, actualResult);
367359
} else {
368360
if (this._registry.isSingleNamespace(object.type)) {
369361
savedObjectNamespace = namespace;
370362
} else if (this._registry.isMultiNamespace(object.type)) {
371363
savedObjectNamespaces = getSavedObjectNamespaces(namespace);
372364
}
373-
versionProperties = getExpectedVersionProperties(version);
374365
}
375366

376367
const expectedResult = {
@@ -395,7 +386,6 @@ export class SavedObjectsRepository {
395386
[method]: {
396387
_id: expectedResult.rawMigratedDoc._id,
397388
_index: this.getIndexForType(object.type),
398-
...(overwrite && versionProperties),
399389
},
400390
},
401391
expectedResult.rawMigratedDoc._source

src/core/server/saved_objects/service/saved_objects_client.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ export interface SavedObjectsCreateOptions extends SavedObjectsBaseOptions {
3737
id?: string;
3838
/** Overwrite existing documents (defaults to false) */
3939
overwrite?: boolean;
40-
/**
41-
* An opaque version number which changes on each successful write operation.
42-
* Can be used in conjunction with `overwrite` for implementing optimistic concurrency control.
43-
**/
44-
version?: string;
4540
/** {@inheritDoc SavedObjectsMigrationVersion} */
4641
migrationVersion?: SavedObjectsMigrationVersion;
4742
references?: SavedObjectReference[];
@@ -57,7 +52,6 @@ export interface SavedObjectsBulkCreateObject<T = unknown> {
5752
id?: string;
5853
type: string;
5954
attributes: T;
60-
version?: string;
6155
references?: SavedObjectReference[];
6256
/** {@inheritDoc SavedObjectsMigrationVersion} */
6357
migrationVersion?: SavedObjectsMigrationVersion;

src/core/server/server.api.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1945,8 +1945,6 @@ export interface SavedObjectsBulkCreateObject<T = unknown> {
19451945
references?: SavedObjectReference[];
19461946
// (undocumented)
19471947
type: string;
1948-
// (undocumented)
1949-
version?: string;
19501948
}
19511949

19521950
// @public (undocumented)
@@ -2081,7 +2079,6 @@ export interface SavedObjectsCreateOptions extends SavedObjectsBaseOptions {
20812079
// (undocumented)
20822080
references?: SavedObjectReference[];
20832081
refresh?: MutatingOperationRefreshSetting;
2084-
version?: string;
20852082
}
20862083

20872084
// @public (undocumented)

0 commit comments

Comments
 (0)