Skip to content

Commit 25ff90a

Browse files
zzacharomax-moser
authored andcommitted
global: document request reviewers feature
closes #859
1 parent 5e10286 commit 25ff90a

3 files changed

Lines changed: 95 additions & 4 deletions

File tree

docs/maintenance/architecture/requests.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ With the above examples in mind, a request ...
4242

4343
- is created by someone who can cancel it
4444
- is received by someone who can accept or decline it
45+
- may have reviewers assigned to provide feedback and recommendations
4546
- may require clarifications (i.e. a conversation) between the creator of the request and the recipient(s)
4647
- may expire after a certain amount of time
4748

@@ -56,11 +57,12 @@ The key entities in the data model:
5657

5758
## Properties
5859

59-
A request has four key properties:
60+
A request has five key properties:
6061

6162
- **Creator** - the entity creating request
6263
- **Topic** - the entity the request is about
6364
- **Receiver** - the entity the request is addressed to
65+
- **Reviewers** - optional entities assigned to review and provide input on the request
6466
- **Status** - the state a request is in
6567

6668
## Statuses
@@ -85,6 +87,19 @@ In addition, the following meta states exists:
8587
Note that the *deleted* state is not implemented directly in the code, as the request is completely
8688
removed from the database in this case.
8789

90+
91+
## Reviewers in requests
92+
93+
Reviewers are optional participants in a request process. They provide expert opinions, feedback, or recommendations but cannot make the final decision to accept or decline the request. That responsibility lies solely with the receiver.
94+
95+
Key characteristics of reviewers:
96+
- Can be individual users or groups
97+
- Multiple reviewers can be assigned to a single request
98+
- Do not have direct authority to accept or decline the request
99+
- Provide input through comments and feedback in the request timeline
100+
- Can be added or removed throughout the request lifecycle
101+
- Have specific permissions to view and comment on the request
102+
88103
## Actions
89104

90105
An action transitions a request from state to another state. Only the state transitions
@@ -108,7 +123,7 @@ Note, we do not allow updating closed requests.
108123

109124
## Entity references
110125

111-
Entity references is an abstraction that allows any type of creator, topic and
126+
Entity references is an abstraction that allows any type of creator, topic, reviewer and
112127
receiver to be modelled.
113128

114129
Technically it's just a type and persistent identifier. Below is an example of
@@ -140,7 +155,7 @@ user have access to.
140155
An entity grant is a combination of:
141156

142157
- Prefix - The prefix qualifies the grant within the record (e.g. ``creator``,
143-
``receiver``, ``read``, ``write``).
158+
``receiver``, ``reviewers``, ``read``, ``write``).
144159
- Permission need - Entity reference as a permission need (e.g ``UserNeed(1)``).
145160

146161
*Permission needs* are just tuples. Below you find examples of permission
@@ -156,6 +171,7 @@ into a token that we can use for querying:
156171
Examples for entity grant tokens:
157172

158173
- ``creator.user.1`` - expresses that the creator.user.1 is granted access.
174+
- ``reviewers.group.review-board`` - expresses that the group review board is granted access.
159175
- ``receiver.community.123.manager`` - expresses that the community 123
160176
managers are granted access.
161177

docs/operate/customize/requests.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Requests
2+
3+
_Introduced in v14_
4+
5+
Configure the requests system in InvenioRDM, including the reviewers feature for enhanced review workflows.
6+
7+
## Reviewers configuration
8+
9+
The reviewers feature enables assignment of external experts, collaborators, or community members to provide feedback on requests without granting them the possibility of accepting or declining a request.
10+
11+
### Enable/Disable reviewers
12+
13+
```python
14+
# Enable the reviewers feature (default: True)
15+
REQUESTS_REVIEWERS_ENABLED = True
16+
```
17+
18+
### Reviewer limits
19+
20+
Control the maximum number of reviewers that can be assigned to a single request. This helps manage workflow complexity and ensures review processes remain manageable.
21+
22+
```python
23+
# Maximum number of reviewers per request (default: 10)
24+
REQUESTS_REVIEWERS_MAX_NUMBER = 5
25+
```
26+
27+
- **Purpose**: Prevents overwhelming requests with too many reviewers
28+
- **Considerations**: Balance between comprehensive review and manageable workflow
29+
30+
### Group reviewers
31+
32+
Enable the assignment of user groups as reviewers, allowing entire teams or committees to be assigned to review requests collectively. If you allow
33+
groups to be defined in your instance, i.e.
34+
35+
```python
36+
# Enable assignment of groups as reviewers (requires invenio-users-resources)
37+
USERS_RESOURCES_GROUPS_ENABLED = True
38+
```
39+
then you will be able to use them as request reviewers.
40+
41+
- **Use cases**:
42+
- Institutional Review Boards
43+
- Editorial committees
44+
- Subject matter expert panels
45+
- Department review teams
46+
- **Behavior**: All members of the assigned group receive access to view and comment on the request
47+
- **Notifications**: Group members may receive notifications based on your notification configuration
48+
49+
## Usage
50+
51+
When enabled, community curators, managers and owners can:
52+
53+
- Assign individual users or groups as reviewers to any request
54+
- Share requests with external experts outside the community
55+
- Grant access to community members who normally wouldn't see requests (e.g., readers)
56+
- Allow multiple reviewers to provide independent feedback
57+
- Track all reviewer interactions in the request timeline
58+
59+
Reviewers can view the request, participate in conversations, and provide recommendations, but cannot accept or decline the request.
60+
61+
## Permissions
62+
63+
By default, reviewers can be added or removed by community members with roles:
64+
- **Owners** and **managers** can assign/remove reviewers
65+
- **Curators** can assign/remove reviewers
66+
67+
Community members with the role: *Readers** cannot assign reviewers but can be assigned as reviewers.
68+
69+
## Related configuration
70+
71+
See also:
72+
- [Communities](../../use/communities.md#requests) - User guide for requests and reviewers
73+
- [Architecture documentation](../../maintenance/architecture/requests.md) - Technical overview of the requests system

docs/use/communities.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,6 @@ In the **Requests** tab, you can view all requests for your community. It allows
126126

127127
The request page provides a dedicated space for communication. You can **have a conversation with the submitter** directly within the request, and you can **accept or decline the inclusion request** based on your community's curation policies.
128128

129-
You can find the high-level architecture documentation for communities [here](../maintenance/architecture/communities.md).
129+
When a submission requires expert input or peer review, you can **assign reviewers** to give specific users or groups access to review the inclusion request. This allows you to share the request with external experts, collaborators outside your community, or community members who normally wouldn't have access (such as readers). Reviewers can provide feedback on the research publication draft or assess whether a record meets your community's inclusion criteria. They participate in the request conversation and share their expertise to help you make an informed curation decision, while the possibility to accept or decline the request remains to the community responsibles (curators, managers and owners).
130+
131+
You can find the high-level architecture documentation for communities [here](../maintenance/architecture/communities.md) and configuration options for requests and reviewers [here](../operate/customize/requests.md).

0 commit comments

Comments
 (0)