From 7e7cec86acbf66b22bbfb432844ae19dae0ed2bc Mon Sep 17 00:00:00 2001 From: Jesse Bye Date: Thu, 17 Jun 2021 13:50:59 -0700 Subject: [PATCH] Escape colons in Lunr search query filters Signed-off-by: Jesse Bye --- .changeset/short-numbers-carry.md | 5 +++++ plugins/search-backend-node/src/engines/LunrSearchEngine.ts | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 .changeset/short-numbers-carry.md diff --git a/.changeset/short-numbers-carry.md b/.changeset/short-numbers-carry.md new file mode 100644 index 0000000000..be95300054 --- /dev/null +++ b/.changeset/short-numbers-carry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-node': patch +--- + +Escape : characters in the query diff --git a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts index f2ace54ed2..a1c12f019d 100644 --- a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts +++ b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts @@ -57,6 +57,9 @@ export class LunrSearchEngine implements SearchEngine { .map(([field, value]) => { // Require that the given field has the given value (with +). if (['string', 'number', 'boolean'].includes(typeof value)) { + if (typeof value === 'string') { + return ` +${field}:${value.replace(':', '\\:')}`; + } return ` +${field}:${value}`; }