-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
🎉 New Destination: Google Firestore #7231
Conversation
Hey @ad-m thanks for your contribution. Can you share you credentials over slack (DM) so that I can test this source. |
@harshithmullapudi I believe I already shared credentials via Slack. |
thanks for this contribution @ad-m I requested the review to our team. |
@marcosmarxm;what does gl label mean? |
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 @ad-m,
Thank you for this PR.
Could you correct the following points?
- add Python annotation to your writer.py
- does this library support the native oauth2 auth (not system account)? I mean some refresh_token with client_id/client_secret. I ask because The Aitbyte project is planning to add support of Oauth2 user authorization for connectors which can use it.
def __init__(self, project_id=None, credentials_json=None, collection=None): | ||
connection = {} | ||
|
||
if project_id: |
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.
is the project_id optional or not? I see to it is required into your spec file
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.
You are right, it's requried. Fixed.
airbyte-integrations/connectors/destination-firestore/destination_firestore/writer.py
Outdated
Show resolved
Hide resolved
from google.oauth2 import service_account | ||
|
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.
this library is not set as dependence obviously into the setup file. I see that it is installed with the google-cloud-firestore
lib but it isn't evident. Could you add all used libraries into the setup file?
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.
All used libraries added into the setup file.
OK.
Yes, that library might be used for OAuth 2.0 flow: https://google-auth.readthedocs.io/en/master/user-guide.html#user-credentials |
@marcosmarxm is there anything how I can push forward that PR? |
@antixar is it a +1 for you on this PR? can I process to publish this ? |
@ad-m please share the acceptance tests screenshot showing those tests are passing too. |
@marcosmarxm is there any documentation regarding how to use acceptance tests for destination connector in Python? I can see that there are open issue to enable Destination Acceptance Tests cross-language support ( #4698 ) and improve documentation for DAT ( airbytehq/airbyte-internal-issues#268 ). However, these issues do not imply that such a standard exists for destinations connector already. Tests pass despite of small tweaks since PR have been created: |
@marcosmarxm , according to @sherifnada :
As it stands, should I try to create a mixed connector that would run Java acceptance tests for the Python connector (I haven't analyzed whether it makes sense to accept acceptance tests due to the level of abstraction)? I do not have a full picture of the management and standards of the project yet, hence this question. I have the impression that mixing languages in one connector will be problematic in the long run. |
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.
Looks good! Sorry for delay of this review
Hello! Sorry to not finished your contribution before the date stipulated in the contest. All contributions made before 15-November are eligible to receive the award. We're trying to review your contribution as soon as possible. |
@harshithmullapudi can you ship this one? |
Is there anything how I can help to handle that PR? |
Yeah @marcosmarxm just trying to understand is there anything more we need to do other than publishing the connector ? |
@ad-m hey were you able to build docker image of this connector ? |
* destination-firestore: add connector * destination-firestore: Add connector to indexes in docs * destination-firestore: fix sync mode spec * destination-firestore: fix typo after connector rename * destination-firestore: fix required field in spec * destination firestore: fix code formatting * destionation-firestore: add python adnotation for writer * destination firestore: add all used libraries into the setup file * destionation-firestore: fix python formatting
What
That PR add connectors to write to Google Firestore. Connector have been implemented in Python.
That PR is part of Airbyte hacktoberfest contest
How
Describe the solution
I have implemented connectors in Python. It support application default credentials (including Google metadata service when Airbyte is running on Google-backed insfructure eg. virtual machines) and JSON credentials.
I have been inspired by existing kvdb destination to keep code coherent.
Considering the existing cooperation between Google and Airbyte, I am not sure how to proceed with the access data to the demo environment, and also to prove the operation.
Recommended reading order
y.python
Pre-merge Checklist
Expand the relevant checklist and delete the others.
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 here