Closed opqdonut closed 3 years ago
Awaiting decision / spec.
Let's plan this further by splitting into separate tasks. Not blocked i.e. required feature and planning can proceed and waits implementation.
Bot can be suitable for this.
Should decision request (or comment request) always allow adding by email that sends an invitation to REMS? It is likely that at the beginning of any REMS instance, the people have not yet logged in to REMS so won't be available in the autocomplete because they are not in the users table.
Architecture idea:
bonafidebot
sends a decision request by email to the given address (see #2040)bonafidebot
waits for the decision, verifies that the decider has bona fide status and then approves or rejects the applicationbonafidebot
can either be in REMS, or an external intergration that uses event notifications (#2095)
Other ideas:
For good usability, REMS should not allow the decider to approve an application if they don't have the bona fide status themselves. Instead, it should provide an informative message to the user why they can't approve the application.
Notice also that there are two ways to receive the bona fide status: (1) User's Home Organisation (its IdP) tells the user is a researcher. (2) A user qualifying to (1) vouches for the bona fide status (via this REMS feature) In other words, the endorsement chain has just one link; a person who has received their bona fide qualifications via endorsement in REMS cannot endorse other persons. This feature is done by the IdP releasing proper bona fide status attribute. The REMS implementation must just check the endorser's bona fide status from the IdP's attribute and not from its internal database.
Yes, thanks for the clarification, that was our understanding too.
The message is also a good point.
Waiting for a couple tasks and review in meeting this week. Plan seems possible with no big issues. I updated the task to reflect the general understanding.
We've now received API credentials on ELIXIR AAI for pushing the bona fide grants. But no clear spec on what to push yet.
An example content to push:
{ "jku": "https://login.elixir-czech.org/oidc/jwk", "kid": "rsa1", "typ": "JWT", "alg": "RS256" } { "sub": "370fa949dd5cac7906dde14164545c64a908ec92@elixir-europe.org", "ga4gh_visa_v1": { "asserted": 1588240500, "by": "peer", "source": "https://elixir-europe.org/", "type": "ResearcherStatus", "value": "https://doi.org/10.1038/s41431-018-0219-y" }, "iss": "https://login.elixir-czech.org/oidc/", "exp": 1639478414, "iat": 1607942414, "jti": "1f2aec8f-7a5b-4200-8dbb-23048f8fb420" }
Approved push spec is very simple: we just pass the elixir-id as an URL parameter and that's it:
https://perun.elixir-czech.cz/rems/?elixirid={elixir_user_id}
moved leftovers to #2511 #2513
We need to support applying for a bona fide status. The application should work roughly like this:
"by": "peer"
~Plan:
Notes and questions: