Skip to content

Commit

Permalink
Create a migration function for datasource to add migrationVersion fi…
Browse files Browse the repository at this point in the history
…eld (opensearch-project#6025)

This PR is to add a migration function with version 2.4.0 for datasource to add a migrationVersion field.
For more information, please refer to the RFC: opensearch-project#6022

Issues Resolved
opensearch-project#6022

Signed-off-by: Yibo Wang <yibow@amazon.com>
  • Loading branch information
yibow98 authored Mar 5, 2024
1 parent bb8155a commit 70adcc9
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- [osd/std] Add additional recovery from false-positives in handling of long numerals ([#5956](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5956))
- [BUG][Discover] Allow saved sort from search embeddable to load in Dashboard ([#5934](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5934))
- [BUG][Multiple Datasource] Fix missing customApiRegistryPromise param for test connection ([#5944](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/5944))
- [BUG][Multiple Datasource] Add a migration function for datasource to add migrationVersion field ([#6022](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6025)

### 🚞 Infrastructure

Expand Down
29 changes: 29 additions & 0 deletions src/plugins/data_source/server/saved_objects/data_source.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import { migrateDataSource } from './data_source';
import { savedObjectsServiceMock } from '../../../../core/server/mocks';

const contextMock = savedObjectsServiceMock.createMigrationContext();

describe('migrateDataSource Function', () => {
it('should return the input document unchanged', () => {
const mockDoc = {
id: 'test-id',
type: 'test-type',
attributes: {
name: 'Test Name',
description: 'Test Description',
},
references: [],
};

// Call the migrateDataSource function with the mock document
const result = migrateDataSource(mockDoc, contextMock);

// Expect the result to be deeply equal to the mock document
expect(result).toEqual(mockDoc);
});
});
11 changes: 10 additions & 1 deletion src/plugins/data_source/server/saved_objects/data_source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@
* SPDX-License-Identifier: Apache-2.0
*/

import { SavedObjectsType } from 'opensearch-dashboards/server';
import { flow } from 'lodash';
import { SavedObjectMigrationFn, SavedObjectsType } from 'opensearch-dashboards/server';

// create a migration function which return the doc without any changes
export const migrateDataSource: SavedObjectMigrationFn<any, any> = (doc) => ({
...doc,
});

export const dataSource: SavedObjectsType = {
name: 'data-source',
Expand Down Expand Up @@ -34,4 +40,7 @@ export const dataSource: SavedObjectsType = {
},
},
},
migrations: {
'2.4.0': flow(migrateDataSource), // 2.4.0 is the version that introduces the datasource
},
};

0 comments on commit 70adcc9

Please sign in to comment.