From 8d15a51b3ec5a29cebdf87a609c2ef8530b37075 Mon Sep 17 00:00:00 2001 From: yu-kkurii <32046496+yu-kkurii@users.noreply.github.com> Date: Mon, 22 Sep 2025 21:37:29 +0200 Subject: [PATCH] update pg search sanitize list (#31083) Signed-off-by: Vladimir Kobzev --- .changeset/nice-readers-judge.md | 5 +++++ .../src/PgSearchEngine/PgSearchEngine.test.ts | 2 +- .../src/PgSearchEngine/PgSearchEngine.ts | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/nice-readers-judge.md diff --git a/.changeset/nice-readers-judge.md b/.changeset/nice-readers-judge.md new file mode 100644 index 0000000000..a70ee8e501 --- /dev/null +++ b/.changeset/nice-readers-judge.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-pg': patch +--- + +Added the < character to the query filter regexp diff --git a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.test.ts b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.test.ts index c56816b475..bc3df76692 100644 --- a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.test.ts +++ b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.test.ts @@ -133,7 +133,7 @@ describe('PgSearchEngine', () => { it('should sanitize query term', async () => { const actualTranslatedQuery = searchEngine.translator( { - term: 'H&e|l!l*o W\0o(r)l:d', + term: 'H&e|l!l*o < W\0o(r)l:d', pageCursor: '', }, { highlightOptions }, diff --git a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts index 5b24d71100..57c22fd19f 100644 --- a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts +++ b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts @@ -196,7 +196,7 @@ export class PgSearchEngine implements SearchEngine { pgQuery: { pgTerm: query.term .split(/\s/) - .map(p => p.replace(/[\0()|&:*!]/g, '').trim()) + .map(p => p.replace(/[\0()|&:*!<]/g, '').trim()) .filter(p => p !== '') .map(p => `(${JSON.stringify(p)} | ${JSON.stringify(p)}:*)`) .join('&'),