-
Notifications
You must be signed in to change notification settings - Fork 45
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 config write-back #8
Comments
@aaronsteers we talked about this before - there's another situation where the config update needs to be handled and that's the CI check that's run for airbyte-lib enabled connectors. |
Made a request in slack to get more detail on scope here and which connectors are affected:
|
Aggregating responses from Slack thread, it looks like we have at least these that require the feature:
And a way to search for them would be to look for instances of Thanks to @flash1293, @pedroslopez, and @alafanechere for their expertise here. 🙏 |
source-quickbooks is another. According to Quickbooks docs, they update the value of the refresh_token value every 24 hours, or the next time you refresh the access tokens after 24 hours. |
@andreibaragan - Thanks for raising. I've updated my comment above to include quickbooks as well. For our information and prioritization, are you blocked by this or do you have a workaround? |
@aaronsteers this is blocking. |
@aaronsteers is there any update/plan/alternative to this issue? |
@andreibaragan - We have not made any progress on this and it is not currently prioritized. What we can do in the meanwhile is to try to work out a spec, which then Airbyte or a member of the community could pick up. To keep this conversation moving, let me put some implementation details here in this thread, according to my research and current understanding of the feature requirements. For context and background: Unlike Airbyte Platform, PyAirbyte has no write access to your secret store - nor do we really want PyAirbyte to need this access. PyAirbyte also does not (yet) have a file-based interface for reading config information. Meaning, there's no way for PyAirbyte to handle the new creds that it would receive from the A few options:
With options 2 or 3, we don't change much, but we also don't have any explicit handoff that the config change is received by the user or handled appropriate. If the process crashes, the python dictionary's contents are lost. And in ephemeral environments, the local config file is likewise very likely to be dropped at the end of the sync. Given the above prelim spec exploration, I think I slightly prefer using option 1, which would be to add an option for an explicit callback. Lmk if this makes sense to you, or if you have any other ideas or suggestions based on your use case. Once we have a viable spec, I can at least mark this as ready to work, which is a step in the right direction, I think. |
Hi @aaronsteers. I created a draft PR that should meet the requirements for Option 1. If you approve of the approach I will move forward with testing and getting the PR ready for approval. |
This is one of our earliest feature requests and I'm excited to finally close it as resolved. @tcboles has shipped the new and I'm following up now with a PR to add docs here: Will be rendered here after merge: Expected release by EOD. 🚀 Thanks, @tcboles and everyone on this thread who contributed input and "+1" to the request. |
Via an Airbyte control message, the running connector can issue an update of its config object: https://docs.airbyte.com/understanding-airbyte/airbyte-protocol#airbytecontrolmessage
This is important for cases like single-use authentication tokens - some APIs only accept an authentication token once and return a new token in the response which has to be used the next time, invalidating the old token.
This message type is currently not honored by airbyte-lib - the message is silently dropped. Ideally, it's possible to handle this situation gracefully:
airbyte-lib-validate-source
: Update the config json file with the updated configThe last step is important to make it possible to run a proper check and read command as part of the CI steps - currently it's not possible to do this as integration test secrets are at risk of being invalidated by the test being run: airbytehq/airbyte#34044
The text was updated successfully, but these errors were encountered: