From 30b4552c205246e7bc4f3984812dbbaaa1ed8860 Mon Sep 17 00:00:00 2001 From: Austin Kelleher Date: Wed, 23 Jun 2021 16:40:49 -0400 Subject: [PATCH 1/3] Fixes #243 - Always assign boolean value to "public" property on "google_storage_bucket" --- .../__snapshots__/converters.test.ts.snap | 51 +++++++++++++++++++ src/steps/storage/converters.test.ts | 12 +++++ src/steps/storage/converters.ts | 2 +- 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/steps/storage/__snapshots__/converters.test.ts.snap b/src/steps/storage/__snapshots__/converters.test.ts.snap index d224138b..456611d1 100644 --- a/src/steps/storage/__snapshots__/converters.test.ts.snap +++ b/src/steps/storage/__snapshots__/converters.test.ts.snap @@ -287,3 +287,54 @@ Object { "webLink": "https://console.cloud.google.com/storage/browser/customer-managed-encryption-key-bucket-1234;tab=objects?forceOnBucketsSortingFiltering=false&project=j1-gc-integration-dev-v2", } `; + +exports[`#createCloudStorageBucketEntity should set "public" to "false" if "isPublic" is "undefined" 1`] = ` +Object { + "_class": Array [ + "DataStore", + ], + "_key": "bucket:customer-managed-encryption-key-bucket-1234", + "_rawData": Array [ + Object { + "name": "default", + "rawData": Object { + "encryption": Object { + "defaultKmsKeyName": "projects/j1-gc-integration-dev-v2/locations/us/keyRings/j1-gc-integration-dev-v2-bucket-ring/cryptoKeys/j1-gc-integration-dev-v2-bucket-key", + }, + "etag": "CAE=", + "iamConfiguration": undefined, + "id": "customer-managed-encryption-key-bucket-1234", + "kind": "storage#bucket", + "location": "US", + "locationType": "multi-region", + "metageneration": "1", + "name": "customer-managed-encryption-key-bucket-1234", + "projectNumber": "1234", + "selfLink": "https://www.googleapis.com/storage/v1/b/customer-managed-encryption-key-bucket-1234", + "storageClass": "STANDARD", + "timeCreated": "2020-07-28T19:06:14.033Z", + "updated": "2020-07-28T19:06:14.033Z", + }, + }, + ], + "_type": "google_storage_bucket", + "classification": null, + "createdOn": 1595963174033, + "displayName": "customer-managed-encryption-key-bucket-1234", + "encrypted": true, + "encryptionKeyRef": "projects/j1-gc-integration-dev-v2/locations/us/keyRings/j1-gc-integration-dev-v2-bucket-ring/cryptoKeys/j1-gc-integration-dev-v2-bucket-key", + "etag": "CAE=", + "id": "customer-managed-encryption-key-bucket-1234", + "kmsKeyName": "projects/j1-gc-integration-dev-v2/locations/us/keyRings/j1-gc-integration-dev-v2-bucket-ring/cryptoKeys/j1-gc-integration-dev-v2-bucket-key", + "location": "US", + "name": "customer-managed-encryption-key-bucket-1234", + "public": false, + "retentionDate": undefined, + "retentionPeriod": undefined, + "retentionPolicyEnabled": undefined, + "storageClass": "STANDARD", + "uniformBucketLevelAccess": false, + "updatedOn": 1595963174033, + "webLink": "https://console.cloud.google.com/storage/browser/customer-managed-encryption-key-bucket-1234;tab=objects?forceOnBucketsSortingFiltering=false&project=j1-gc-integration-dev-v2", +} +`; diff --git a/src/steps/storage/converters.test.ts b/src/steps/storage/converters.test.ts index e555998a..6b43ccd4 100644 --- a/src/steps/storage/converters.test.ts +++ b/src/steps/storage/converters.test.ts @@ -69,4 +69,16 @@ describe('#createCloudStorageBucketEntity', () => { }), ).toMatchSnapshot(); }); + + test('should set "public" to "false" if "isPublic" is "undefined"', () => { + expect( + createCloudStorageBucketEntity({ + data: getMockStorageBucket({ + iamConfiguration: undefined, + }), + projectId: DEFAULT_INTEGRATION_CONFIG_PROJECT_ID, + isPublic: undefined, + }), + ).toMatchSnapshot(); + }); }); diff --git a/src/steps/storage/converters.ts b/src/steps/storage/converters.ts index 50e3e461..42eb7c71 100644 --- a/src/steps/storage/converters.ts +++ b/src/steps/storage/converters.ts @@ -51,7 +51,7 @@ export function createCloudStorageBucketEntity({ retentionPolicyEnabled: data.retentionPolicy?.isLocked, retentionPeriod: data.retentionPolicy?.retentionPeriod, retentionDate: data.retentionPolicy?.effectiveTime, - public: isPublic, + public: isPublic || false, // Rely on the value of the classification tag classification: null, etag: data.etag, From d8a854056f7e66b6df8eb7e814fea2e315350f93 Mon Sep 17 00:00:00 2001 From: Austin Kelleher Date: Wed, 23 Jun 2021 16:42:50 -0400 Subject: [PATCH 2/3] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe5ae344..e8d5d9c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,13 @@ and this project adheres to ## [Unreleased] +## 0.43.1 - 2021-06-23 + +### Fixed + +- [#243](https://github.com/JupiterOne/graph-google-cloud/issues/243) - Always + assign boolean value to `public` property on `google_storage_bucket` + ## 0.43.0 - 2021-06-22 ### Changed From 03427f392d24e120f67a409eaf72e6aed8574aa9 Mon Sep 17 00:00:00 2001 From: Austin Kelleher Date: Wed, 23 Jun 2021 16:49:57 -0400 Subject: [PATCH 3/3] 0.43.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 40b6be83..943f6aed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jupiterone/graph-google-cloud", - "version": "0.43.0", + "version": "0.43.1", "description": "A graph conversion tool for https://cloud.google.com/", "license": "MPL-2.0", "main": "dist/index.js",