-
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
Support OAuth for Integrations in Airbyte UI #768
Comments
First pass of the tech spec is done and reviewed. Next steps are to describe the technical details of the approach in more depth. |
We have verbal agreement on the approach. Need to update the spec to reflect it. On @michel-tricot 's suggestion we will start out by not putting the OAuth code in connector containers but add it as a switch statement in core based on insight that we think we will be able to write write an abstraction that doesn't require per integration work. |
@davinchia asked me to add my thoughts to this issue as we have the same need, but for the Facebook Graph API, which is pretty complex as per their docs. When you generate an access token for this API via their Graph Explorer you need to specify the Facebook App, whether it's a User or Page Token and then add the specific permissions (i.e. scopes) needed to get data from the API. However it would be great if the following OAuth flow was possible via the UI:
An additional step which it would be great to automate would be the periodic refresh of the token every e.g. 1 month so that the data would not stop flowing if the user forgot to manually refresh/exchange the token. Currently we do this via a Python script in a Colab Notebook, which is obviously not ideal but we are only doing this on one account every 2-3 months. |
Thanks @jimbeepbeep . I think the common pattern is that every time we replicate data we will use the refresh token to get a new access token if needed. So hopefully the second half of your comment is pretty much already part of our common pattern.
For this part, what values need to be predefined? and should they be predefined in an airbyte ui or the fb ui?
So far we planning to have the user create their own. Airbyte is focused on letting a user have 100% control of their data. If we use an Airbyte FB app, then the user is giving Airbyte access to their data. The downside is it requires a little extra set up for the user. Let me know if this all made sense or if you have any other thoughts! |
That is great, makes total sense.
I think these could be preset in the connector config, for our use-case it's a specific and unchanging set
Agreed, that makes more sense. There are app-linked quotas too which should be user responsibility. |
When is it getting released? |
@manish-GP thanks for your interest. It is likely something we'll be tackling in the second half of the summer. |
I am currently thinking about building connectors to Personio and Weclapp which also use mechanisms similar to what @cgardens describes. For Personio a token has to be sent to an API endpoint to obtain another token which is valid for one request to another API endpoint (documentation). Weclapp uses a token that can be generated once (documentation). Can anyone explain to me if the "best practice" currently is to implement this in the connector on my own or does the CDK already contain methods to achieve this? P.S. I hope this is the right place to ask, if not I can of course open a new issue for this. |
@tweinreich the best way to implement oauth right now is to have the connector accept a refresh/access token and perform the oauth flow by hand outside of airbyte. When this ticket closes it will be possible to perform the oauth flow directly in the UI. |
@sherifnada thank you for the clarification. |
Oauth is available on Airybte Cloud, currently no ETA for OSS support. Closing this issue, we should re-open a separate one for OSS as needed |
@sherifnada is there an update on Oauth for the OSS version? I'm confused on why its not possible for OSS and is possible on the cloud version. What are the blockers? |
@thomas-vl There's currently no timeline -- in order to accurately gauge interest in this, I've opened an issue to track Oauth in OSS specifically here: #13021 please leave a 👍🏼 to help us prioritize |
related to #766.
Checklist
Described in #5769
Tell us about the problem you're trying to solve
If you're not familiar with oauth (or forget how it works every time you encounter it, like me)...
The flow looks something like this.
Describe the solution you’d like
How
┆Issue is synchronized with this Asana task by Unito
The text was updated successfully, but these errors were encountered: