Skip to content

Commit 8c6f0c2

Browse files
authored
[EPM] fix /packages response to return older packages (#62623) (#62693)
* compare package list by name * use the internal property, adding as saved object attribute * remove HiddenPackages type
1 parent c6eea56 commit 8c6f0c2

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

x-pack/plugins/ingest_manager/server/saved_objects.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ export const savedObjectMappings = {
148148
properties: {
149149
name: { type: 'keyword' },
150150
version: { type: 'keyword' },
151+
internal: { type: 'boolean' },
151152
installed: {
152153
type: 'nested',
153154
properties: {

x-pack/plugins/ingest_manager/server/services/epm/packages/get.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ export async function getPackages(
3131
Object.assign({}, item, { title: item.title || nameAsTitle(item.name) })
3232
);
3333
});
34-
const searchObjects = registryItems.map(({ name, version }) => ({
34+
// get the installed packages
35+
const results = await savedObjectsClient.find<Installation>({
3536
type: PACKAGES_SAVED_OBJECT_TYPE,
36-
id: `${name}-${version}`,
37-
}));
38-
const results = await savedObjectsClient.bulkGet<Installation>(searchObjects);
39-
const savedObjects = results.saved_objects.filter(o => !o.error); // ignore errors for now
37+
});
38+
// filter out any internal packages
39+
const savedObjectsVisible = results.saved_objects.filter(o => !o.attributes.internal);
4040
const packageList = registryItems
4141
.map(item =>
4242
createInstallableFrom(
4343
item,
44-
savedObjects.find(({ id }) => id === `${item.name}-${item.version}`)
44+
savedObjectsVisible.find(({ attributes }) => attributes.name === item.name)
4545
)
4646
)
4747
.sort(sortByName);

x-pack/plugins/ingest_manager/server/services/epm/packages/install.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export async function installPackage(options: {
8787
}): Promise<AssetReference[]> {
8888
const { savedObjectsClient, pkgkey, callCluster } = options;
8989
const registryPackageInfo = await Registry.fetchInfo(pkgkey);
90-
const { name: pkgName, version: pkgVersion } = registryPackageInfo;
90+
const { name: pkgName, version: pkgVersion, internal = false } = registryPackageInfo;
9191

9292
const installKibanaAssetsPromise = installKibanaAssets({
9393
savedObjectsClient,
@@ -116,6 +116,7 @@ export async function installPackage(options: {
116116
pkgkey,
117117
pkgName,
118118
pkgVersion,
119+
internal,
119120
toSave,
120121
});
121122
return toSave;
@@ -145,9 +146,10 @@ export async function saveInstallationReferences(options: {
145146
pkgkey: string;
146147
pkgName: string;
147148
pkgVersion: string;
149+
internal: boolean;
148150
toSave: AssetReference[];
149151
}) {
150-
const { savedObjectsClient, pkgkey, pkgName, pkgVersion, toSave } = options;
152+
const { savedObjectsClient, pkgkey, pkgName, pkgVersion, internal, toSave } = options;
151153
const installation = await getInstallation({ savedObjectsClient, pkgkey });
152154
const savedRefs = installation?.installed || [];
153155
const mergeRefsReducer = (current: AssetReference[], pending: AssetReference) => {
@@ -159,7 +161,7 @@ export async function saveInstallationReferences(options: {
159161
const toInstall = toSave.reduce(mergeRefsReducer, savedRefs);
160162
await savedObjectsClient.create<Installation>(
161163
PACKAGES_SAVED_OBJECT_TYPE,
162-
{ installed: toInstall, name: pkgName, version: pkgVersion },
164+
{ installed: toInstall, name: pkgName, version: pkgVersion, internal },
163165
{ id: pkgkey, overwrite: true }
164166
);
165167

0 commit comments

Comments
 (0)