diff --git a/.changeset/four-badgers-buy.md b/.changeset/four-badgers-buy.md new file mode 100644 index 0000000000..054c1bfba9 --- /dev/null +++ b/.changeset/four-badgers-buy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Added a fix in `@backstage/plugin-catalog-backend` to prevent duplicate path keys in entity search if only casing is different. diff --git a/plugins/catalog-backend/src/database/operations/stitcher/buildEntitySearch.ts b/plugins/catalog-backend/src/database/operations/stitcher/buildEntitySearch.ts index 53e8d4c1cd..bee0426a99 100644 --- a/plugins/catalog-backend/src/database/operations/stitcher/buildEntitySearch.ts +++ b/plugins/catalog-backend/src/database/operations/stitcher/buildEntitySearch.ts @@ -110,7 +110,16 @@ export function traverse(root: unknown): Kv[] { // because the latter means EITHER b or c has to be present. visit(path, item); if (typeof item === 'string') { - output.push({ key: `${path}.${item}`, value: true }); + const pathKey = `${path}.${item}`; + if ( + !output.some( + kv => + kv.key.toLocaleLowerCase('en-US') === + pathKey.toLocaleLowerCase('en-US'), + ) + ) { + output.push({ key: pathKey, value: true }); + } } } return;