hypothesis / hypothesis/product-backlog

Enable users of the Hypothesis service to register OAuth clients themselves

Open
#376 0 comments 0 reactions 0 assignees View on GitHub
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._

screenshot 2017-11-06 15 00 17

_Create/edit client form: Only the name, redirect URL and ID fields should be preserved in the user-facing version of this_.

screenshot 2017-11-06 14 59 54

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.