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 Request: add AuthCode local webbrowser handler to SDK #282

Closed
sirosen opened this issue Mar 11, 2018 · 0 comments
Closed

Feature Request: add AuthCode local webbrowser handler to SDK #282

sirosen opened this issue Mar 11, 2018 · 0 comments

Comments

@sirosen
Copy link
Member

sirosen commented Mar 11, 2018

We've had requests come in to add the local webbrowser integration used by the CLI to the SDK.
To start, the feature request:

Allow SDK users to emulate the login behavior of globus login

That probably breaks into components:

  • A GlobusSDKAuthCodeHandlerServer which can be used as a context manager to cover both the local HTTP server and webbrowser invocation
  • Handling for custom HTML templates
  • Handling for custom scopes and other params on the oauth2 flow
  • Well-defined exceptions for different failure modes (instead of catching Exception)

When you start to add in all of the window-dressing features (like detecting remote connections), it will inevitably bloat a bit more.


After spending a couple of hours trying to figure out how to slot it in, I'm convinced.
It doesn't belong in the SDK.

This is only being requested as an SDK feature "by process of elimination" -- people want to emulate globus login, and they're not sure where else to request such a feature.
When you look at what we offer today, we have the APIs, Local Globus Connect Personal, and various objects to support these. Authorizers, Responses, and Exceptions are all the most minimal, necessary tooling for managing these things.

The CLI is a python product which will do all kinds of things which users want to emulate -- but not all of them need to be here in the SDK. If such things need to be shared and exposed to 3rd party developers (and I'm not convinced that there is any such need!), then let's make another lib rather than distorting this one and losing sight of its goals and the level of quality and support which it offers.
Maybe it will make its way in, against my protestations, but it would be a mistake that sets a really bad precedent.

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

No branches or pull requests

2 participants