-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Source Plaid: port to Python CDK #7977
Conversation
Hi @firmbase-tal , thanks for this contribution! Could you please share evidence that acceptance tests are passing on your side? ./gradlew :airbyte-integrations:connectors:source-plaid:integrationTest Please also run: ./gradlew bash |
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.
I made a first quick review of the core and my main concern is that I feel like the abstractions you defined thanks to configs/PlaidStream/PlaidRequester
are a bit far-fetched. I'm not 100% sure of the interest of storing some streams configurations in an external json file.
I think that you can make your connector more readable by having the following classes:
PlaidStream(Stream)
BalanceStream(PlaidStream)
IncrementalTransactionStream(PlaidStream)
And IMO the PlaidRequesters
method could be brought back to the child classes above.
Let me know what you think about this!
- config_path: "secrets/config.json" | ||
configured_catalog_path: "integration_tests/configured_catalog.json" | ||
empty_streams: [] | ||
# TODO uncomment this block to specify that the tests should assert the connector outputs the records provided in the input file a 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.
Please remove all TODO
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 @firmbase-tal , thanks for this contribution! Could you please share evidence that acceptance tests are passing on your side? Command to run from top level airbyte directory:
./gradlew :airbyte-integrations:connectors:source-plaid:integrationTestPlease also run:
./gradlew bash
./gradlew bash
This fails with error: Task 'bash' not found in root project 'airbyte'.
I'm unsure as to what went wrong there.
Also, where should I upload the files from the acceptance tests?
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.
Sorry it was a typo for my side I meant ./gradlew format
Hi @firmbase-tal, are you still interested in moving this PR forward according to my review? |
I add the label blocked until the user reply the review. |
Co-authored-by: Augustin <augustin@airbyte.io>
Yes, apologies for the delay, will handle the changes soon. |
Thanks for your work here @firmbase-tal. Let me know if I can help get this over the line. |
I think I fixed everything for now, please let me know if further changes are necessary. |
Hi @firmbase-tal, thanks for the changes; I'll go for another review this week then! @hbd feel free to review too if you're familiar with Plaid 😄 |
@firmbase-tal I allowed myself to make some changes to simplify the code.
Let me know what you think about these. |
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. I was able to build the image locally and, although I am not very familiar with the Plaid API, the spec looks good
airbyte-integrations/connectors/source-plaid/source_plaid/source.py
Outdated
Show resolved
Hide resolved
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.
I confirm acceptance tests are passing. I'm publishing this now.
Just confirming that I ran latest locally and successfully synced Plaid Sandbox data. |
Thank you @hbd for testing and @firmbase-tal for your original contribution! |
What
Reformatted plaid to be written in Python instead of Javascript: #3998
Added transaction functionality to the source.
How
The new Python connector works with the Plaid API package to draw data, then extracts the relevant data to stream, and dumps it as messages.
Balance stream maintains data structure from previous connector version.
Recommended reading order
Chef's choice. 😄
Pre-merge Checklist
Updating 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