airbytehq / airbyte

The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.
https://airbyte.com
Other
14.94k stars 3.84k forks source link

Source Zendesk Sunshine: support oauth #6291

Open sherifnada opened 2 years ago

sherifnada commented 2 years ago

Tell us about the problem you're trying to solve

With the release of Airbyte Cloud, we need to start supporting Oauth for this connector, since it's the recommended way of authenticating users into a SaaS application.

If this connector doesn't support oauth already (i.e: doesn't accept a client_id and client_secret) then we need to update its spec to accept those parameters. There are two ways to do this:

If the connector already supports some auth mechanism like api_key, I suggest that this be a oneof nested inside a top-level field called "authentication":

{ authentication: { type: object oneOf: [ // api key, // oauth ] } }

If the connector only supports webflow oauth, then no changes are needed to the properties format and we will only need to add annotations.

See the connector spec reference in the docs for reference on how a oneof can be implemented.

This should be done in a backwards compatible manner i.e: users currently supplying authentication info in the config's top-level should not be impacted by this change.

Acceptance Criteria

  1. The connector supports oauth webflow authentication with client_id/client_secret in a backwards compatible manner
  2. Oauth properties are annotated properly. See this PR for an example
eliziario commented 2 years ago

Connector currently supports api_key.

Zendesk sunshine access tokens don't expire,

eliziario commented 2 years ago

https://github.com/airbytehq/airbyte/pull/6873

VasylLazebnyk commented 2 years ago

blocked by 6971

eliziario commented 2 years ago

It is still blocked by https://github.com/airbytehq/airbyte/issues/6971 as it requires a subdomain parameter for the consent and token refresh urls