-
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
🎉 New Destination: Propel #35427
🎉 New Destination: Propel #35427
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Before Merging a Connector Pull RequestWow! What a great pull request you have here! 🎉 To merge this PR, ensure the following has been done/considered for each connector added or updated:
If the checklist is complete, but the CI check is failing,
|
Margarita Gomez seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
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.
Left some comments
Co-authored-by: Nicolas Acosta <[email protected]>
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.
Hey @margaritagomez and @acossta! Thank you both for the contribution. It might take us a second, let me figure out who's the right person to review and figure out the pieces for how to get this in.
A few concerns that we need to work through:
- I think we have connectors that we only have as an image (and not code in our repo), but I'm not certain how we go about them.
- We might require some security code audit and docker image audit to be wired up — part of this is on our side.
Do you have specific use cases or folks who would like to beta-test the destination?
releaseStage: alpha | ||
documentationUrl: https://docs.airbyte.com/integrations/destinations/propel | ||
tags: | ||
- language:unknown |
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.
Hmmm. IS this because the tag is required, but the value is irrelevant?
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 just used the other third party connectors as a base. Since those are in Javascript and the language was set as unknown
, I set it as such too. Do let me know if setting it as go
or golang
would be appropriate.
documentationUrl: https://docs.airbyte.com/integrations/destinations/propel | ||
tags: | ||
- language:unknown | ||
ab_internal: |
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 don't know if these make sense — and I'm not sure why we default them to 100.
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.
Same as above, the others had it as 100 😕 but let me know if those should change
@natikgadzhi Hi, thanks for the comments! We have customers who wish to migrate their data from different sources (SaaS apps and databases) to Propel. We would also like to use this Airbyte destination as leverage for a fast integration to our product. The destination repo is private as of now, but we can make it public if that helps the audits. |
The contribution is great, @margaritagomez! I'm concerned about adding an external connector to the main catalog without available source code. This implies it's accepted as an Airbyte connector, but without access to the code, security issues can't be addressed or audited. There are some work being done to have a better way to share 3rd party connectors in the future. If your customers want to get data using Airbyte they can add the connector manually as custom one. If the connector is in the main catalog people will start opening issues in the airbyte repo and we don't have access or ways to resolve them. In my opinion Propel should follow the same as PlanetScale is doing for now: https://planetscale.com/docs/integrations/airbyte |
@marcosmarxm I understand the concern! We are allowing customers follow the same path as you say with PlanetScale. Is there a way to move ahead with this PR by making our destination repository public, like folks at Faros AI in their Airbyte connectors repo, and have users file issues over there? Here is our public repo just in case. |
@margaritagomez to merge the RP and make a new 3rd party destination available in Cloud, we'd need to do some extra work:
Admittedly, we haven't prioritized reviewing 3rd party destinations recently, so we're not entirely quick with these steps. In the meantime, I'm trying to check if adding a public Docker image as a custom connector works on Cloud (the form is there, but I think I found a bug and it hangs) — I'll report back. |
What
This PR introduces a new Propel destination. Resolves #35417.
How
The new destination was built in Go, in a separate private repository. The public docker image can be found here.
We have built our own unit and integration tests to assert its proper behavior, as well as tested it by running Airbyte locally. Let me know if the repo should be public for reviews.
Recommended reading order
propel.md
metadata.yaml
oss_registry.json
🚨 User Impact 🚨
This introduces our first version of the destination so it is marked as
0.0.1
.Unit tests
Our unit tests mock our Propel API and focus on asserting errors, logs and successful writes.
Integration tests
These are run every time a pull request is created for our destination repo, where the docker is built, and the three
spec
,check
andwrite
commands are run. We then poll to our e2e Propel account to make sure all records were correctly inserted.Airbyte tests
Here are a few connectors we set up that successfully moved data to Propel. Each Data Pool corresponds to an Airbyte stream.
Pre-merge Actions
New Connector
Community member or Airbyter
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.0.0.1
Dockerfile
has version0.0.1
README.md
bootstrap.md
. See description and examples --> This link does not workdocs/integrations/<source or destination>/<name>.md
including changelog with an entry for the initial version. See changelog exampledocs/integrations/README.md