Managing credentials in Terraform with Airbyte Cloud for Google Ads source

Summary

This message discusses how to manage credentials when using Terraform and Airbyte Cloud for a Google Ads source. It also questions whether credentials get updated automatically when changing the source configuration using Terraform.


Question

Hi everyone, I was wondering how do you manage credentials when using terraform and airbyte cloud.
If we take Google Ads source as example

resource "airbyte_source_google_ads" "my_source_googleads" {
configuration = {
conversion_window_days = 14
credentials = {
access_token = "...my_access_token..."
client_id = "...my_client_id..."
client_secret = "...my_client_secret..."
developer_token = "...my_developer_token..."
refresh_token = "...my_refresh_token..."
}
custom_queries_array = [
{
query = "SELECT <http://segments.ad|segments.ad>_destination_type, campaign.advertising_channel_sub_type FROM campaign WHERE campaign.status = 'PAUSED'"
table_name = "...my_table_name..."
},
]
customer_id = "6783948572,5839201945"
customer_status_filter = [
"SUSPENDED",
]
end_date = "2017-01-30"
start_date = "2017-01-25"
}
definition_id = "c47ca706-1390-437c-beef-972df3c14a34"
name = "Emilio Senger"
secret_id = "...my_secret_id..."
workspace_id = "9ab276cb-ad00-4cae-a12c-4e65b57e54a2"
}

Credentials are required, but then in the Airbyte UI I can authenticate the connection.
So what happens if I push a source with “dummy” credentials to the UI and then authenticate it and I then use terraform to change the source further.
Do credentials get updated as well and I need to re-Auth again?



This topic has been created from a Slack thread to give it more visibility.
It will be on Read-Only mode here. Click here if you want
to access the original thread.

Join the conversation on Slack

["managing-credentials", "terraform", "airbyte-cloud", "google-ads-source", "credentials-update", "re-authentication"]

I have done some digging, looks like the correct way of doing this is to initialize OAuth flow for each source, store the secret_id and use that secret_id inside Terraform config.

This is not very user friendly as I need a HTTPs server to catch these query params, is there anyway to redirect back to localhost?