From f63fdb4d331a8ba4e3b27c2a4dd5985b8c3d4cc7 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 12 Oct 2022 16:49:29 +0800 Subject: [PATCH 1/3] Fix storage policies not showing policies with bucket id as variable --- studio/components/to-be-cleaned/Storage/Storage.utils.ts | 9 +++++---- .../Storage/StoragePolicies/StoragePolicies.js | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/studio/components/to-be-cleaned/Storage/Storage.utils.ts b/studio/components/to-be-cleaned/Storage/Storage.utils.ts index 0b60bade9af..3381687db15 100644 --- a/studio/components/to-be-cleaned/Storage/Storage.utils.ts +++ b/studio/components/to-be-cleaned/Storage/Storage.utils.ts @@ -18,7 +18,7 @@ export const shortHash = (str: string) => { * Output: [{ bucket: , policies: }] * @param {Array} policies: All policies from a table in a schema */ -export const formatPoliciesForStorage = (policies: any[]) => { +export const formatPoliciesForStorage = (buckets: any[], policies: any[]) => { if (policies.length === 0) return policies /** @@ -28,7 +28,7 @@ export const formatPoliciesForStorage = (policies: any[]) => { * - Strip away bucket_id from definitions * Note, if the policy definition has no bucket_id, we skip the formatting */ - const formattedPolicies = formatStoragePolicies(policies) + const formattedPolicies = formatStoragePolicies(buckets, policies) /** * Package policies by grouping them by bucket: @@ -40,7 +40,8 @@ export const formatPoliciesForStorage = (policies: any[]) => { } /* Start: Internal methods to support formatPoliciesForStorage but exported for tests to cover */ -export const formatStoragePolicies = (policies: any[]) => { +export const formatStoragePolicies = (buckets: any[], policies: any[]) => { + const availableBuckets = buckets.map((bucket) => bucket.name) const formattedPolicies = policies.map((policy) => { const { definition: policyDefinition, check: policyCheck } = policy @@ -49,7 +50,7 @@ export const formatStoragePolicies = (policies: any[]) => { ? extractBucketNameFromDefinition(policyDefinition) : extractBucketNameFromDefinition(policyCheck) - if (bucketName) { + if (bucketName && availableBuckets.includes(bucketName)) { // [JOSHEN TODO] We cannot override definition here anymore cause we're gonna be using the auth editor // const definition = policyDefinition !== null ? policyDefinition : policyCheck return { diff --git a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePolicies.js b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePolicies.js index 80958ef50ba..fbc5fa35425 100644 --- a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePolicies.js +++ b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePolicies.js @@ -35,7 +35,7 @@ const StoragePolicies = () => { // Policies under storage.objects const storageObjectsPolicies = filter(policies, { table: 'objects' }) - const formattedStorageObjectPolicies = formatPoliciesForStorage(storageObjectsPolicies) + const formattedStorageObjectPolicies = formatPoliciesForStorage(buckets, storageObjectsPolicies) const ungroupedPolicies = get( find(formattedStorageObjectPolicies, { name: 'Ungrouped' }), ['policies'], From 513486145464dc8ab0c6e0fa2415bd85613970ce Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Thu, 13 Oct 2022 16:13:14 +1100 Subject: [PATCH 2/3] fix build --- studio/components/layouts/StorageLayout/StorageLayout.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/studio/components/layouts/StorageLayout/StorageLayout.tsx b/studio/components/layouts/StorageLayout/StorageLayout.tsx index 0aa2181bc65..6f6c3a13491 100644 --- a/studio/components/layouts/StorageLayout/StorageLayout.tsx +++ b/studio/components/layouts/StorageLayout/StorageLayout.tsx @@ -36,6 +36,7 @@ const StorageLayout: FC = ({ title, children }) => { createBucket, deleteBucket, toggleBucketPublic, + buckets, } = storageExplorerStore || {} const { services, isLoading } = useProjectSettings(ref as string | undefined) @@ -76,7 +77,10 @@ const StorageLayout: FC = ({ title, children }) => { if (res) { const policies = meta.policies.list() const storageObjectsPolicies = filter(policies, { table: 'objects' }) - const formattedStorageObjectPolicies = formatPoliciesForStorage(storageObjectsPolicies) + const formattedStorageObjectPolicies = formatPoliciesForStorage( + buckets, + storageObjectsPolicies + ) const bucketPolicies = _get( find(formattedStorageObjectPolicies, { name: bucket.name }), ['policies'], From 97a35d87b487f148cd22d0966d7e7a224b16aa8d Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Thu, 13 Oct 2022 18:13:02 +1100 Subject: [PATCH 3/3] chore: upgrade supabase-js to v2 --- apps/www/package.json | 2 +- package-lock.json | 204 +++++++++++------------------------------- studio/package.json | 2 +- 3 files changed, 54 insertions(+), 154 deletions(-) diff --git a/apps/www/package.json b/apps/www/package.json index da85c899afa..cf9c934de71 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -18,7 +18,7 @@ "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", "@supabase/auth-ui-react": "^0.1.6", - "@supabase/supabase-js": "^2.0.0-rc.10", + "@supabase/supabase-js": "^2.0.0", "@supabase/ui": "v0.37.0-alpha.80", "classnames": "^2.3.1", "date-fns": "2.10.0", diff --git a/package-lock.json b/package-lock.json index 4ca4f3d0c63..cb3b9214a92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -122,7 +122,7 @@ "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", "@supabase/auth-ui-react": "^0.1.6", - "@supabase/supabase-js": "^2.0.0-rc.10", + "@supabase/supabase-js": "^2.0.0", "@supabase/ui": "v0.37.0-alpha.80", "classnames": "^2.3.1", "date-fns": "2.10.0", @@ -8733,17 +8733,17 @@ } }, "node_modules/@supabase/functions-js": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0-rc.2.tgz", - "integrity": "sha512-SSgqdL9NKRwEEEHMRnou0rYdYLdu1e7hsEwsaDr6cycmt5YS002ia8sGnj02ytPmgDk/wv+Y8DMdGd4QfZHAOA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/gotrue-js": { - "version": "2.0.0-rc.10", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.0-rc.10.tgz", - "integrity": "sha512-y4jxZlf6eFoz0EP3EeU2QZnwI2WfpvkzAhURAAkn36Abol5QQhHpCbTWBEZhqOUk0cDtKZzgjsc5UQeep72qHA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", "dependencies": { "cross-fetch": "^3.1.5" } @@ -8763,9 +8763,9 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0-rc.6.tgz", - "integrity": "sha512-Oe3f9T1TGUdbBStEMJbYSKxIbkAc53ccARhq4zcwBn1NS7/aBK3LTUNEc5qEn4wZGSGtnCLNf+Xc9BSn+IM6bQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", "dependencies": { "cross-fetch": "^3.1.5" } @@ -8791,9 +8791,9 @@ } }, "node_modules/@supabase/realtime-js": { - "version": "2.0.0-rc.5", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0-rc.5.tgz", - "integrity": "sha512-0JiSJjoTmwleufGzBQwEVamI047jnAiemBk8qOkgwyoLOlfGTQk8XSA7aT023BsGVgRNKZqp/jJJAVBht/Rd2w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "dependencies": { "@types/phoenix": "^1.5.4", "websocket": "^1.0.34" @@ -8805,23 +8805,23 @@ "integrity": "sha512-CQEr/dKLNt3+du3xhpqohO3fkVFCLL+v92Vgj51cECpAv3LIkkxGKNNc+SXsG+niDxMZp9EuyDLo7fGzsB8f6w==" }, "node_modules/@supabase/storage-js": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0-rc.2.tgz", - "integrity": "sha512-KovBS7+uJYu8KSvwWPFB6ZPAFFZFnj6s72GvDqhkWpGHIC1OLijYQ9/sRWq2Y+G6HofB8szz4+KLvtyxrgX6AQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/supabase-js": { - "version": "2.0.0-rc.10", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0-rc.10.tgz", - "integrity": "sha512-0yjcWm7YnyPcuHl4OOhUkWzyyvFpGeuKdK0x5HKVROApadVcUZEz5/Zng8J32TbmD0nSMhU/IDBYhVfjZrLSYw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "dependencies": { - "@supabase/functions-js": "^2.0.0-rc.1", - "@supabase/gotrue-js": "^2.0.0-rc.4", - "@supabase/postgrest-js": "^1.0.0-rc.5", - "@supabase/realtime-js": "^2.0.0-rc.5", - "@supabase/storage-js": "^2.0.0-rc.1", + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", "cross-fetch": "^3.1.5" } }, @@ -36044,7 +36044,7 @@ "@supabase/postgres-meta": "^0.26.1", "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.29", - "@supabase/supabase-js": "^2.0.0-rc.2", + "@supabase/supabase-js": "^2.0.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "awesome-debounce-promise": "^2.1.0", @@ -36472,7 +36472,7 @@ "license": "MIT", "devDependencies": { "@faker-js/faker": "^6.1.2", - "@supabase/supabase-js": "^1.35.6", + "@supabase/supabase-js": "^2.0.0", "@testdeck/jest": "^0.2.0", "@types/jest": "^27.4.0", "@types/node": "^17.0.24", @@ -36503,59 +36503,6 @@ "node": ">=10.10.0" } }, - "tests/node_modules/@supabase/functions-js": { - "version": "1.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.1.5" - } - }, - "tests/node_modules/@supabase/gotrue-js": { - "version": "1.23.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.0.6" - } - }, - "tests/node_modules/@supabase/postgrest-js": { - "version": "0.37.4", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.1.5" - } - }, - "tests/node_modules/@supabase/realtime-js": { - "version": "1.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/phoenix": "^1.5.4", - "websocket": "^1.0.34" - } - }, - "tests/node_modules/@supabase/storage-js": { - "version": "1.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.1.0" - } - }, - "tests/node_modules/@supabase/supabase-js": { - "version": "1.35.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@supabase/functions-js": "^1.3.4", - "@supabase/gotrue-js": "^1.22.21", - "@supabase/postgrest-js": "^0.37.4", - "@supabase/realtime-js": "^1.7.5", - "@supabase/storage-js": "^1.7.2" - } - }, "tests/node_modules/ajv": { "version": "6.12.6", "dev": true, @@ -42785,17 +42732,17 @@ } }, "@supabase/functions-js": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0-rc.2.tgz", - "integrity": "sha512-SSgqdL9NKRwEEEHMRnou0rYdYLdu1e7hsEwsaDr6cycmt5YS002ia8sGnj02ytPmgDk/wv+Y8DMdGd4QfZHAOA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/gotrue-js": { - "version": "2.0.0-rc.10", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.0-rc.10.tgz", - "integrity": "sha512-y4jxZlf6eFoz0EP3EeU2QZnwI2WfpvkzAhURAAkn36Abol5QQhHpCbTWBEZhqOUk0cDtKZzgjsc5UQeep72qHA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", "requires": { "cross-fetch": "^3.1.5" } @@ -42811,9 +42758,9 @@ } }, "@supabase/postgrest-js": { - "version": "1.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0-rc.6.tgz", - "integrity": "sha512-Oe3f9T1TGUdbBStEMJbYSKxIbkAc53ccARhq4zcwBn1NS7/aBK3LTUNEc5qEn4wZGSGtnCLNf+Xc9BSn+IM6bQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", "requires": { "cross-fetch": "^3.1.5" } @@ -42834,9 +42781,9 @@ } }, "@supabase/realtime-js": { - "version": "2.0.0-rc.5", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0-rc.5.tgz", - "integrity": "sha512-0JiSJjoTmwleufGzBQwEVamI047jnAiemBk8qOkgwyoLOlfGTQk8XSA7aT023BsGVgRNKZqp/jJJAVBht/Rd2w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "requires": { "@types/phoenix": "^1.5.4", "websocket": "^1.0.34" @@ -42848,23 +42795,23 @@ "integrity": "sha512-CQEr/dKLNt3+du3xhpqohO3fkVFCLL+v92Vgj51cECpAv3LIkkxGKNNc+SXsG+niDxMZp9EuyDLo7fGzsB8f6w==" }, "@supabase/storage-js": { - "version": "2.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0-rc.2.tgz", - "integrity": "sha512-KovBS7+uJYu8KSvwWPFB6ZPAFFZFnj6s72GvDqhkWpGHIC1OLijYQ9/sRWq2Y+G6HofB8szz4+KLvtyxrgX6AQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/supabase-js": { - "version": "2.0.0-rc.10", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0-rc.10.tgz", - "integrity": "sha512-0yjcWm7YnyPcuHl4OOhUkWzyyvFpGeuKdK0x5HKVROApadVcUZEz5/Zng8J32TbmD0nSMhU/IDBYhVfjZrLSYw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "requires": { - "@supabase/functions-js": "^2.0.0-rc.1", - "@supabase/gotrue-js": "^2.0.0-rc.4", - "@supabase/postgrest-js": "^1.0.0-rc.5", - "@supabase/realtime-js": "^2.0.0-rc.5", - "@supabase/storage-js": "^2.0.0-rc.1", + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", "cross-fetch": "^3.1.5" } }, @@ -60595,7 +60542,7 @@ "@supabase/postgres-meta": "^0.26.1", "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.29", - "@supabase/supabase-js": "^2.0.0-rc.2", + "@supabase/supabase-js": "^2.0.0", "@tailwindcss/typography": "^0.5.2", "@testing-library/dom": "^8.11.1", "@testing-library/react": "^12.1.2", @@ -60971,7 +60918,7 @@ "version": "file:tests", "requires": { "@faker-js/faker": "^6.1.2", - "@supabase/supabase-js": "^1.35.6", + "@supabase/supabase-js": "^2.0.0", "@testdeck/jest": "^0.2.0", "@types/jest": "^27.4.0", "@types/node": "^17.0.24", @@ -60998,53 +60945,6 @@ "minimatch": "^3.0.4" } }, - "@supabase/functions-js": { - "version": "1.3.4", - "dev": true, - "requires": { - "cross-fetch": "^3.1.5" - } - }, - "@supabase/gotrue-js": { - "version": "1.23.1", - "dev": true, - "requires": { - "cross-fetch": "^3.0.6" - } - }, - "@supabase/postgrest-js": { - "version": "0.37.4", - "dev": true, - "requires": { - "cross-fetch": "^3.1.5" - } - }, - "@supabase/realtime-js": { - "version": "1.7.5", - "dev": true, - "requires": { - "@types/phoenix": "^1.5.4", - "websocket": "^1.0.34" - } - }, - "@supabase/storage-js": { - "version": "1.7.3", - "dev": true, - "requires": { - "cross-fetch": "^3.1.0" - } - }, - "@supabase/supabase-js": { - "version": "1.35.7", - "dev": true, - "requires": { - "@supabase/functions-js": "^1.3.4", - "@supabase/gotrue-js": "^1.22.21", - "@supabase/postgrest-js": "^0.37.4", - "@supabase/realtime-js": "^1.7.5", - "@supabase/storage-js": "^1.7.2" - } - }, "ajv": { "version": "6.12.6", "dev": true, @@ -63892,7 +63792,7 @@ "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", "@supabase/auth-ui-react": "^0.1.6", - "@supabase/supabase-js": "^2.0.0-rc.10", + "@supabase/supabase-js": "^2.0.0", "@supabase/ui": "v0.37.0-alpha.80", "@tailwindcss/typography": "^0.5.2", "@types/classnames": "^2.3.1", diff --git a/studio/package.json b/studio/package.json index 59fa41f50b3..4c8457f638a 100644 --- a/studio/package.json +++ b/studio/package.json @@ -27,7 +27,7 @@ "@supabase/postgres-meta": "^0.26.1", "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.29", - "@supabase/supabase-js": "^2.0.0-rc.2", + "@supabase/supabase-js": "^2.0.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "awesome-debounce-promise": "^2.1.0",