diff --git a/lerna.json b/lerna.json index 78a218fcd4..bdef39176a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "npmClient": "yarn", "useWorkspaces": true, "packages": ["packages/*"], diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 730acda357..ed76f20b1f 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.5.5-alpha.0", + "@budibase/types": "2.5.5-alpha.1", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index fd05734559..8817de456e 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", + "@budibase/shared-core": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index 21fe404b0e..6fc7ead6d1 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.5.5-alpha.0", - "@budibase/client": "2.5.5-alpha.0", - "@budibase/frontend-core": "2.5.5-alpha.0", - "@budibase/shared-core": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", + "@budibase/bbui": "2.5.5-alpha.1", + "@budibase/client": "2.5.5-alpha.1", + "@budibase/frontend-core": "2.5.5-alpha.1", + "@budibase/shared-core": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 0e23763c20..713dd0869d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", - "@budibase/types": "2.5.5-alpha.0", + "@budibase/backend-core": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", + "@budibase/types": "2.5.5-alpha.1", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 2829e358ba..784b43fb99 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.5.5-alpha.0", - "@budibase/frontend-core": "2.5.5-alpha.0", - "@budibase/shared-core": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", - "@budibase/types": "2.5.5-alpha.0", + "@budibase/bbui": "2.5.5-alpha.1", + "@budibase/frontend-core": "2.5.5-alpha.1", + "@budibase/shared-core": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", + "@budibase/types": "2.5.5-alpha.1", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 4a6004b0ed..a90f6d2fb9 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.5.5-alpha.0", - "@budibase/shared-core": "2.5.5-alpha.0", + "@budibase/bbui": "2.5.5-alpha.1", + "@budibase/shared-core": "2.5.5-alpha.1", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index ba187295d0..27468640ee 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 65e79ba7b7..eae38f1a47 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.5.5-alpha.0", - "@budibase/client": "2.5.5-alpha.0", - "@budibase/pro": "2.5.5-alpha.0", - "@budibase/shared-core": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", - "@budibase/types": "2.5.5-alpha.0", + "@budibase/backend-core": "2.5.5-alpha.1", + "@budibase/client": "2.5.5-alpha.1", + "@budibase/pro": "2.5.5-alpha.1", + "@budibase/shared-core": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", + "@budibase/types": "2.5.5-alpha.1", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index c97a166216..23d61fa495 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.5.5-alpha.0" + "@budibase/types": "2.5.5-alpha.1" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 1e266fe96a..5b9fc30247 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index d79739bc90..fd6846aea0 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index efefa541a9..e9feddb86d 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.5.5-alpha.0", + "version": "2.5.5-alpha.1", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.5.5-alpha.0", - "@budibase/pro": "2.5.5-alpha.0", - "@budibase/string-templates": "2.5.5-alpha.0", - "@budibase/types": "2.5.5-alpha.0", + "@budibase/backend-core": "2.5.5-alpha.1", + "@budibase/pro": "2.5.5-alpha.1", + "@budibase/string-templates": "2.5.5-alpha.1", + "@budibase/types": "2.5.5-alpha.1", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", diff --git a/packages/worker/src/api/routes/global/tests/scim.spec.ts b/packages/worker/src/api/routes/global/tests/scim.spec.ts index 3352951152..db47493685 100644 --- a/packages/worker/src/api/routes/global/tests/scim.spec.ts +++ b/packages/worker/src/api/routes/global/tests/scim.spec.ts @@ -585,6 +585,59 @@ describe("scim", () => { totalResults: groupCount, }) }) + + it("can fetch groups using displayName filters", async () => { + const groupToFetch = _.sample(groups) + const response = await getScimGroups({ + params: { filter: `displayName eq "${groupToFetch!.displayName}"` }, + }) + + expect(response).toEqual({ + Resources: [groupToFetch], + itemsPerPage: 1, + schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + startIndex: 1, + totalResults: 1, + }) + }) + + it("can fetch groups excluding members", async () => { + const response = await getScimGroups({ + params: { excludedAttributes: "members" }, + }) + + expect(response).toEqual({ + Resources: expect.arrayContaining( + groups.map(g => { + const { members, ...groupData } = g + return groupData + }) + ), + itemsPerPage: 25, + schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + startIndex: 1, + totalResults: groupCount, + }) + }) + + it("can fetch groups excluding multiple fields", async () => { + const response = await getScimGroups({ + params: { excludedAttributes: "members,displayName" }, + }) + + expect(response).toEqual({ + Resources: expect.arrayContaining( + groups.map(g => { + const { members, displayName, ...groupData } = g + return groupData + }) + ), + itemsPerPage: 25, + schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + startIndex: 1, + totalResults: groupCount, + }) + }) }) }) @@ -662,6 +715,16 @@ describe("scim", () => { status: 404, }) }) + + it("should allow excluding members", async () => { + const response = await findScimGroup(group.id, { + qs: "excludedAttributes=members", + }) + + const { members, ...expectedResponse } = group + + expect(response).toEqual(expectedResponse) + }) }) describe("DELETE /api/global/scim/v2/groups/:id", () => { diff --git a/packages/worker/src/tests/api/scim/groups.ts b/packages/worker/src/tests/api/scim/groups.ts index 96ff9aeb67..d2df007614 100644 --- a/packages/worker/src/tests/api/scim/groups.ts +++ b/packages/worker/src/tests/api/scim/groups.ts @@ -18,6 +18,7 @@ export class ScimGroupsAPI extends ScimTestAPI { startIndex?: number pageSize?: number filter?: string + excludedAttributes?: string } } ) => { @@ -32,6 +33,9 @@ export class ScimGroupsAPI extends ScimTestAPI { if (params?.filter) { url += `filter=${params.filter}&` } + if (params?.excludedAttributes) { + url += `excludedAttributes=${params.excludedAttributes}&` + } const res = await this.call(url, "get", requestSettings) return res.body as ScimGroupListResponse } @@ -54,9 +58,12 @@ export class ScimGroupsAPI extends ScimTestAPI { return res.body as ScimGroupResponse } - find = async (id: string, requestSettings?: Partial) => { + find = async ( + id: string, + requestSettings?: Partial & { qs?: string } + ) => { const res = await this.call( - `/api/global/scim/v2/groups/${id}`, + `/api/global/scim/v2/groups/${id}?${requestSettings?.qs}`, "get", requestSettings ) diff --git a/yarn.lock b/yarn.lock index c84f28b254..c1b5be3b11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1486,14 +1486,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.5.4": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.5.4.tgz#9368117a41b276ec97d3994e3ec67d9f2570a5bc" - integrity sha512-xPNVlRFTcjpWn+oZCvrfgDd9SoslkUgJsS2Bnff+qDoWcTFz30KoOyZPAkSwXxX3Y8FmZRO9csl0AZa9TsUs7A== +"@budibase/pro@2.5.5-alpha.0": + version "2.5.5-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.5.5-alpha.0.tgz#28b075a96efb564328a4972cae9ea6c9a5f3aabc" + integrity sha512-98fLnvHWVy7ASEFC98bo6Qdd55SjC7yrJNuf7FUYZbeFwpmwwRxlWnWFTa0ctKWB5p2LToARWBns3TqgnUr/zQ== dependencies: - "@budibase/backend-core" "2.5.4" - "@budibase/string-templates" "2.3.20" - "@budibase/types" "2.5.4" + "@budibase/backend-core" "2.5.5-alpha.0" + "@budibase/shared-core" "2.4.44-alpha.1" + "@budibase/string-templates" "2.4.44-alpha.1" + "@budibase/types" "2.5.5-alpha.0" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1501,6 +1502,15 @@ lru-cache "^7.14.1" memorystream "^0.3.1" node-fetch "^2.6.1" + scim-patch "^0.7.0" + scim2-parse-filter "^0.2.8" + +"@budibase/shared-core@2.4.44-alpha.1": + version "2.4.44-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/shared-core/-/shared-core-2.4.44-alpha.1.tgz#3d499e40e7e6c646e13a87cd08e01ba116c2ff1d" + integrity sha512-cN8LaDczijtsfWUYiXC4sg9Z+US4020i3Mb8TwCbf8TQyA1b06U5PwPCp+GHVA/wDFqfwcpcE1GXf8GwVuYs7A== + dependencies: + "@budibase/types" "2.4.44-alpha.1" "@budibase/standard-components@^0.9.139": version "0.9.139" @@ -1520,10 +1530,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/string-templates@2.3.20": - version "2.3.20" - resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-2.3.20.tgz#35f74b6f515e8127cc375ee0a4679b0a7c117588" - integrity sha512-wMKau3IzVF6M+dRu99aKV1yMdrrK5lghVm9qYtR1B163SMbHEwC8JmZFGPLIi1XsG0T+vw+xfcemfJ2zcATWwg== +"@budibase/string-templates@2.4.44-alpha.1": + version "2.4.44-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-2.4.44-alpha.1.tgz#6c2aee594d16eac1f173c509e087a817dd3172f0" + integrity sha512-4gC2+0kccK0ilLnd0i/dmJzC0Ur7UgSAmV6zbzDDYNL4spU0qSy5VhBh7E3qKieg5RKMMzbpXLMWERpoPLlnqA== dependencies: "@budibase/handlebars-helpers" "^0.11.8" dayjs "^1.10.4" @@ -1532,6 +1542,11 @@ lodash "^4.17.20" vm2 "^3.9.4" +"@budibase/types@2.4.44-alpha.1": + version "2.4.44-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" + integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== + "@bull-board/api@3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af" @@ -21169,7 +21184,7 @@ scim-patch@^0.7.0: fast-deep-equal "3.1.3" scim2-parse-filter "0.2.8" -scim2-parse-filter@0.2.8: +scim2-parse-filter@0.2.8, scim2-parse-filter@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/scim2-parse-filter/-/scim2-parse-filter-0.2.8.tgz#12e836514b9a55ae51218dd6e7fbea91daccfa4d" integrity sha512-1V+6FIMIiP+gDiFkC3dIw86KfoXhnQRXhfPaiQImeeFukpLtEkTtYq/Vmy1yDgHQcIHQxQQqOWyGLKX0FTvvaA==