hypothesis / hypothesis/product-backlog
Enable users of the Hypothesis service to register OAuth clients themselves
- Dominant language
- No language data
- Stars
- 122
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
### Problem you are trying to address with this feature
Currently only Hypothesis admins can register OAuth clients. This means that third-party developers who would like to build their own custom versions of the embed or browser extensions, even for purely personal use, need to either run their own version of the service or contact us in order to register an OAuth client. This is a barrier to people experimenting with changes to the client.
### Your solution
Enable users of the Hypothesis service to register OAuth clients themselves, but with only a minimal set of options compared to the forms in the admin section of the site. In particular, only clients which obtain explicit authorization from the user can be created.
1. Allow OAuth clients to be associated with an account, which then "owns" the client.
2. Create a stripped down version of the "OAuth clients" section of the site admin pages [1] with the following limitations:
- Only clients owned by the current user are shown in the client list and can be edited or removed
- When a new client is created, the owner is set to the current user account
- Only the name and redirect URL fields are editable. The "Authority", "Grant type" and "Trusted" fields are removed and their values will be {current domain}, "authorization_code" and `False` respectively.
3. Expose these stripped down forms on the [Developer](https://hypothes.is/account/developer) page of the public site.
----
[1] Current OAuth client admin forms:
_Client list: Only the ID and Name columns should be preserved in the user-facing version of this._

_Create/edit client form: Only the name, redirect URL and ID fields should be preserved in the user-facing version of this_.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing OAuth client admin forms and the public Developer page at /account/developer, then trace how clients, accounts, ownership, and authorization are represented. Done means users can create, view, edit, and remove only their own clients, with only the name and redirect URL editable and the specified authorization-only defaults applied.
Written by the indexing model from the issue text.
Assessment
- Domain
- authentication, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100