-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🐛Destination-gcs\destination-bigquery(gcs) - updated check() method to handle that user has both storage.objects.create and storage.multipartUploads.create roles #9121
Conversation
…thod to handle that user has both storage.objects.create and storage.multipartUploads.create roles
...rs/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java
Outdated
Show resolved
Hide resolved
...rs/destination-gcs/src/main/java/io/airbyte/integrations/destination/gcs/GcsDestination.java
Outdated
Show resolved
Hide resolved
Finished with review, left comments. |
CC: @etsybaev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. we can proceed with publishing and merging without airbyte review
@@ -12,6 +12,7 @@ application { | |||
dependencies { | |||
implementation project(':airbyte-config:models') | |||
implementation project(':airbyte-protocol:models') | |||
implementation project(':airbyte-workers') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like the worker is not needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @tuliren.
I've added a new test for insufficient roles verification that calls runCheck method. If fails like this if airbyte-workers haven't been added.
But you're right, that this is not required for the whole project, moved it to integrationTestJavaImplementation dependency.
Thanks
/test connector=connectors/destination-gcs
|
/test connector=connectors/destination-gcs
|
/publish connector=connectors/destination-gcs
|
/test connector=connectors/destination-bigquery
|
/test connector=connectors/destination-bigquery-denormalized
|
/publish connector=connectors/destination-bigquery
|
The bigquery-denormalized connector currently seems to have broken integration tests after recent merging another PR. So the version will be bumped as part of its fixing |
@etsybaev This change seems to require either |
@mjaggard, the Here is the doc:
|
Actually let me double check that our integration test is using a service account that only has these six permissions. |
The integration test passed locally with the six permissions, but failed on CI. I will look into it. #9631 |
I did not have time to fully investigate this last week. Will do it on Monday. |
What
On write the S3StreamTransferManagerHelper is performing a multipart upload.
On GCS storage.multipartUploads.create permission is required to write an object to the bucket, the check only requires storage.objects.create permission.
If the service account has storage.objects.create permission but not storage.multipartUploads.create the check will pass but the sync will fail.
Recommended reading order:
P.S. ignore python files, there are only auto-formatting updates that occurred after running format command ("./gradlew --no-daemon format --scan")
How
Updated check method to check both roles.
!!!!!! TODO once approved !!!!!!!!:
Also tested locally on UI:
here is the result for user without multipart upload role (fails with AccessDenied and printed expected roles):
Here is the result for user with all expected roles (verification passed):
User Impact
No breaks backward compatibility expected
Pre-merge Checklist
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/SUMMARY.md
docs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing./publish
command described hereUpdating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing./publish
command described here