-
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
SAT: Capture configuration updates from connectors' control messages #19979
Conversation
Affected Connector ReportNOTE
|
Connector | Version | Changelog | Publish |
---|---|---|---|
source-airtable |
0.1.3 |
✅ | ✅ |
source-amazon-ads |
0.1.25 |
✅ | ✅ |
source-amazon-seller-partner |
0.2.28 |
✅ | ✅ |
source-amazon-sqs |
0.1.0 |
✅ | ✅ |
source-amplitude |
0.1.17 |
✅ | ✅ |
source-appsflyer |
0.1.0 |
✅ | ✅ |
source-asana |
0.1.5 |
✅ | ✅ |
source-azure-table |
0.1.3 |
✅ | ✅ |
source-braintree |
0.1.3 |
✅ | ✅ |
source-cart |
0.2.0 |
✅ | ✅ |
source-chargebee |
0.1.16 |
✅ | ✅ |
source-commercetools |
0.1.0 |
✅ | ✅ |
source-confluence |
0.1.1 |
✅ | ✅ |
source-datadog |
0.1.0 |
✅ | ✅ |
source-delighted |
0.1.4 |
✅ | ✅ |
source-drift |
0.2.5 |
✅ | ✅ |
source-facebook-marketing |
0.2.76 |
✅ | ✅ |
source-facebook-pages |
0.1.6 |
✅ | ✅ |
source-freshcaller |
0.1.0 |
✅ | ✅ |
source-freshsales |
0.1.2 |
✅ | ✅ |
source-freshservice |
0.1.1 |
✅ | ✅ |
source-github |
0.3.8 |
✅ | ✅ |
source-gitlab |
0.1.8 |
✅ | ✅ |
source-google-ads |
0.2.5 |
✅ | ✅ |
source-google-search-console |
0.1.18 |
✅ | ✅ |
source-greenhouse |
0.3.0 |
✅ | ✅ |
source-harvest |
0.1.11 |
✅ | ✅ |
source-instagram |
1.0.0 |
✅ | ✅ |
source-iterable |
0.1.22 |
✅ | ✅ |
source-klaviyo |
0.1.10 |
✅ | ✅ |
source-lemlist |
0.1.1 |
✅ | ✅ |
source-lever-hiring |
0.1.3 |
✅ | ✅ |
source-linnworks |
0.1.5 |
✅ | ✅ |
source-mailchimp |
0.3.0 |
✅ | ✅ |
source-mailgun |
0.1.0 |
✅ | ✅ |
source-monday |
0.1.4 |
✅ | ✅ |
source-notion |
0.1.10 |
✅ | ✅ |
source-okta |
0.1.13 |
✅ | ✅ |
source-onesignal |
0.1.2 |
✅ | ✅ |
source-openweather |
0.1.6 |
✅ | ✅ |
source-outreach |
0.1.2 |
✅ | ✅ |
source-pardot |
0.1.0 |
✅ | ✅ |
source-paystack |
0.1.1 |
✅ | ✅ |
source-pinterest |
0.1.9 |
✅ | ✅ |
source-pipedrive |
0.1.13 |
✅ | ✅ |
source-plaid |
0.3.2 |
❌ (changelog missing) |
✅ |
source-posthog |
0.1.7 |
✅ | ✅ |
source-prestashop |
0.3.0 |
✅ | ✅ |
source-quickbooks-singer |
0.1.5 |
⚠ (doc not found) |
✅ |
source-recharge |
0.2.4 |
✅ | ✅ |
source-retently |
0.1.2 |
✅ | ✅ |
source-salesforce |
1.0.27 |
✅ | ✅ |
source-salesloft |
0.1.3 |
✅ | ✅ |
source-sendgrid |
0.2.16 |
✅ | ✅ |
source-sentry |
0.1.7 |
✅ | ✅ |
source-strava |
0.1.2 |
✅ | ✅ |
source-surveymonkey |
0.1.13 |
✅ | ✅ |
source-tplcentral |
0.1.1 |
✅ | ✅ |
source-twilio |
0.1.14 |
✅ | ✅ |
source-weatherstack |
0.1.0 |
✅ | ✅ |
source-youtube-analytics |
0.1.3 |
✅ | ✅ |
source-zendesk-sunshine |
0.1.1 |
✅ | ✅ |
source-zendesk-talk |
0.1.5 |
✅ | ✅ |
source-zenloop |
0.1.3 |
✅ | ✅ |
- See "Actionable Items" below for how to resolve warnings and errors.
✅ Destinations (0)
Connector | Version | Changelog | Publish |
---|
- See "Actionable Items" below for how to resolve warnings and errors.
✅ Other Modules (0)
Actionable Items
(click to expand)
Category | Status | Actionable Item |
---|---|---|
Version | ❌ mismatch |
The version of the connector is different from its normal variant. Please bump the version of the connector. |
⚠ doc not found |
The connector does not seem to have a documentation file. This can be normal (e.g. basic connector like source-jdbc is not published or documented). Please double-check to make sure that it is not a bug. |
|
Changelog | ⚠ doc not found |
The connector does not seem to have a documentation file. This can be normal (e.g. basic connector like source-jdbc is not published or documented). Please double-check to make sure that it is not a bug. |
❌ changelog missing |
There is no chnagelog for the current version of the connector. If you are the author of the current version, please add a changelog. | |
Publish | ⚠ not in seed |
The connector is not in the seed file (e.g. source_definitions.yaml ), so its publication status cannot be checked. This can be normal (e.g. some connectors are cloud-specific, and only listed in the cloud seed file). Please double-check to make sure that it is not a bug. |
❌ diff seed version |
The connector exists in the seed file, but the latest version is not listed there. This usually means that the latest version is not published. Please use the /publish command to publish the latest version. |
/test connector=connectors/source-bing-ads
Build FailedTest summary info:
|
|
Link your demo look video to the PR! |
|
I think I already did 😄 |
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.
some comments and questions but nothing blocking
auth_creds = { | ||
"client_id": client_id, | ||
@property | ||
def auth_creds(self): |
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.
nit: signatures
"redirection_uri": "", # should be empty string | ||
"client_secret": None, | ||
"tenant": tenant_id, |
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.
do we not need tenant?
...e-integrations/bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py
Show resolved
Hide resolved
...e-integrations/bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py
Show resolved
Hide resolved
@@ -93,6 +95,7 @@ def call_read_with_state(self, config, catalog, state, **kwargs) -> List[Airbyte | |||
return output | |||
|
|||
def run(self, cmd, config=None, state=None, catalog=None, raise_container_error: bool = True, **kwargs) -> Iterable[AirbyteMessage]: |
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.
does the calling context automatically get this new config? if yes can you clarify how in a comment?
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.
All the tests using the ConnectorRunner
are using the connector_config
fixture (also function scoped) . The connector_config
fixture is loading the config from the connector_config_path
fixture. The connector_config_path
fixture dynamically retrieves the latest configuration written to theupdated_configurations
folder. So all tests using connector_config
fixture are calling docker_runner
methods with the "new" config.
I don't think clarifying the behavior here is a good idea as it's fixture related, not an internal logic of the runner. I wrote something here in the connector_config_path
fixture.
...e-integrations/bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py
Show resolved
Hide resolved
Thanks @sherifnada for your review. I answered your comments about SAT. |
@alafanechere makes sense, thank you for the clarifications! LGTM :) |
/publish connector=bases/source-acceptance-test auto-bump-version=false
if you have connectors that successfully published but failed definition generation, follow step 4 here |
What
1/2 of this issue.
#19428 introduced a new CDK feature: connectors can emit control messages to update their configuration.
The latest emitted configuration should be used on the next connector operations.
We need to make SAT capable of:
Demo 👀
Loom video
How
Tweak<- revertedsource-bing-ads
for testing: make its config observed and produce control messages on token refreshConnectorRunner.run
to process control messages that are updating configuration:airbyte/airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py
Line 116 in 234ba61
ConnectorRunner._persist_new_configuration
to store new configurations to anupdated_configurations
folder (e.g.secrets/updated_configurations/config|{update-time}.json
)airbyte/airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/utils/connector_runner.py
Line 183 in f879c01
connector_configuration_path
fixture to retrieve the latest updated configuration if any:airbyte/airbyte-integrations/bases/source-acceptance-test/source_acceptance_test/conftest.py
Line 58 in 234ba61
🚨 User Impact 🚨
This should not impact existing SAT run as no connector is yet emitting
CONTROL
messages.