Skip to content
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

Feature/support oauth2 authentication #23

Closed

Conversation

s7clarke10
Copy link
Contributor

This feature introduces additional authentication options that weren't possible with just headers in the request (specifically OAuth).

The Meltano sdk supports a number of authentication method which have been supported with this feature. The feature utilizes the available SDK Authenticators https://github.com/meltano/sdk/blob/main/singer_sdk/authenticators.py.

There are many forms of Authentication supported by this feature. By default for legacy support, you can still pass Authentication via headers it should have no breaking changes as part of this feature. If you want to use the built in support for Authentication, this tap supports :

  • Basic Authentication
  • API Key
  • Bearer Token
  • OAuth

Please note that OAuthJWTAuthentication has not been developed.

It should be noted that while the Authenticators normally go in the stream.py, I have implemented this in the tap.py because we need the Authenticator to discover the schema which is part of the tap.py logic. The authentication has also just been applied at the top-level, it has not be applied as a individual stream by stream form of authentication.

Finally Note: This branch was built on top of the previous feature "Feature/support_link_list_pagination_tokens" so include the logic for this feature which introduced support for HATEOAS/FHIR API request/reponse styles. There is a previous PR which included this.

Cheers
Steve

@jlloyd-widen
Copy link
Contributor

@s7clarke10 can you think of anyway to setup unit tests for these auth items? I'm thinking of creating a new tests/test_auth.py and doing it there.

@s7clarke10
Copy link
Contributor Author

s7clarke10 commented Aug 17, 2022 via email

@s7clarke10
Copy link
Contributor Author

s7clarke10 commented Sep 25, 2022 via email

@jlloyd-widen
Copy link
Contributor

@s7clarke10 thanks for the reminder. I think I'm just waiting on unit tests (pytests) relating to both PRs I haven't had time to do it myself yet. So feel free to add some, preferably they wouldn't hit an external API but instead would just mock an external api call. If you can't get to it, then I think I might get back around to in a few weeks from now. Wish I could get to it sooner ... :(

@s7clarke10
Copy link
Contributor Author

s7clarke10 commented Oct 11, 2022 via email

@s7clarke10
Copy link
Contributor Author

Closed: This logic is now incorporated in this PR - #35

@s7clarke10 s7clarke10 closed this Jul 1, 2023
@s7clarke10
Copy link
Contributor Author

Closed: This logic is now incorporated in this PR - #36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants