diff --git a/.changeset/brave-peaches-brush.md b/.changeset/brave-peaches-brush.md
new file mode 100644
index 0000000000..f0661ba818
--- /dev/null
+++ b/.changeset/brave-peaches-brush.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Making the description of the GitLab repoUrl owner field more clearer by focusing it refers to the GitLab namespace.
diff --git a/.changeset/mean-spiders-design.md b/.changeset/mean-spiders-design.md
new file mode 100644
index 0000000000..3704c9fca9
--- /dev/null
+++ b/.changeset/mean-spiders-design.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-backend': minor
+---
+
+Be less restrictive with unknown keys on query endpoint
diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
index c628b364b9..fbcc13c846 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
@@ -66,8 +66,8 @@ export const GitlabRepoPicker = (props: {
>
)}
- The organization, groups, subgroups, user, project (also known as
- namespaces in gitlab), that this repo will belong to
+ GitLab namespace where this repository will belong to. It can be the
+ name of organization, group, subgroup, user, or the project.
>
diff --git a/plugins/search-backend/src/service/router.test.ts b/plugins/search-backend/src/service/router.test.ts
index 1437e65b84..f26f191ecd 100644
--- a/plugins/search-backend/src/service/router.test.ts
+++ b/plugins/search-backend/src/service/router.test.ts
@@ -148,6 +148,25 @@ describe('createRouter', () => {
});
});
+ it('is less restrictive with unknown keys on query endpoint', async () => {
+ const queryString =
+ 'term=test&%5BdocType%5D%5B0%5D=Service&filters%5BdocType%5D%5B0%5D=filter1&unknownKey1%5B2%5D=unknownValue1&unknownKey1%5B3%5D=unknownValue2&unknownKey2=unknownValue1&pageCursor';
+ const response = await request(app).get(`/query?${queryString}`);
+ const firstArg: Object = {
+ docType: ['Service'],
+ filters: { docType: ['filter1'] },
+ pageCursor: '',
+ term: 'test',
+ unknownKey1: ['unknownValue1', 'unknownValue2'],
+ unknownKey2: 'unknownValue1',
+ };
+ const secondArg = {
+ token: undefined,
+ };
+ expect(response.status).toEqual(200);
+ expect(mockSearchEngine.query).toHaveBeenCalledWith(firstArg, secondArg);
+ });
+
describe('search result filtering', () => {
beforeAll(async () => {
const logger = getVoidLogger();
diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts
index cf9abff675..87da80d8f5 100644
--- a/plugins/search-backend/src/service/router.ts
+++ b/plugins/search-backend/src/service/router.ts
@@ -133,7 +133,7 @@ export async function createRouter(
req: express.Request,
res: express.Response,
) => {
- const parseResult = requestSchema.safeParse(req.query);
+ const parseResult = requestSchema.passthrough().safeParse(req.query);
if (!parseResult.success) {
throw new InputError(`Invalid query string: ${parseResult.error}`);