You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dataverse can now track the history of role assignments, allowing administrators to see who assigned or revoked roles, when these actions occurred, and which roles were involved. This feature helps with auditing and understanding permission changes over time.
4
+
5
+
## Key components of this feature:
6
+
7
+
-**Feature Flag**: The functionality can be enabled/disabled via the `ROLE_ASSIGNMENT_HISTORY` feature flag (default is `off`)
8
+
-**UI Integration**: New history panels on permission management pages showing the complete history of role assignments/revocations
9
+
-**CSV Export**: Administrators can download the role assignment history for a given collection or dataset (or files in a dataset) as a CSV file directly from the new panels
10
+
-**API Access**: New API endpoints provide access to role assignment history in both JSON and CSV formats:
The CSV response has column headers mirroring the JSON entries. They are internationalized (when internationalization is configured).
1557
+
1558
+
Note: This feature requires the "role-assignment-history" feature flag to be enabled (see :ref:`feature-flags`).
1559
+
1488
1560
Datasets
1489
1561
--------
1490
1562
@@ -4155,6 +4227,135 @@ Upon success, the API will return a JSON response with a success message and the
4155
4227
The API call will report a 400 (BAD REQUEST) error if any of the files specified do not exist or are not in the latest version of the specified dataset.
4156
4228
The ``fileIds``in the JSON payload should be an array of file IDs that you want to delete from the dataset.
4157
4229
4230
+
.. _api-dataset-role-assignment-history:
4231
+
4232
+
Dataset Role Assignment History
4233
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4234
+
4235
+
Get the history of role assignments for a dataset. This API call returns a list of role assignments and revocations for the specified dataset.
The CSV response has column headers mirroring the JSON entries. They are internationalized (when internationalization is configured).
4300
+
4301
+
Note: This feature requires the "role-assignment-history" feature flag to be enabled (see :ref:`feature-flags`).
4302
+
4303
+
Dataset Files Role Assignment History
4304
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4305
+
4306
+
Get the history of role assignments forthe filesin a dataset. This API call returns a list of role assignments and revocations forall filesin the specified dataset.
The JSON response for this call is the same as for the /api/datasets/{id}/assignments/history call above with the exception that definedOn will be a comma separated list of one or more file ids.
4339
+
4340
+
To retrieve the historyin CSV format, change the Accept header to "text/csv":
The CSV response for this call is the same as for the /api/datasets/{id}/assignments/history call above with the exception that definedOn will be a comma separated list of one or more file ids.
4357
+
4358
+
Note: This feature requires the "role-assignment-history" feature flag to be enabled (see :ref:`feature-flags`).
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/installation/config.rst
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3821,6 +3821,9 @@ please find all known feature flags below. Any of these flags can be activated u
3821
3821
* - enable-pid-failure-log
3822
3822
- Turns on creation of a monthly log file (logs/PIDFailures_<yyyy-MM>.log) showing failed requests for dataset/file PIDs. Can be used directly or with scripts at https://github.com/gdcc/dataverse-recipes/python/pid_reports to alert admins.
3823
3823
- ``Off``
3824
+
* - role-assignment-history
3825
+
- Turns on tracking/display of role assignments and revocations for collections, datasets, and files
3826
+
- ``Off``
3824
3827
3825
3828
**Note:** Feature flags can be set via any `supported MicroProfile Config API source`_, e.g. the environment variable
3826
3829
``DATAVERSE_FEATURE_XXX`` (e.g. ``DATAVERSE_FEATURE_API_SESSION_AUTH=1``). These environment variables can be set in your shell before starting Payara. If you are using :doc:`Docker for development </container/dev-usage>`, you can set them in the `docker compose <https://docs.docker.com/compose/environment-variables/set-environment-variables/>`_ file.
Copy file name to clipboardExpand all lines: doc/sphinx-guides/source/user/dataverse-management.rst
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,14 +119,16 @@ Clicking on Permissions will bring you to this page:
119
119
120
120
|image3|
121
121
122
-
When you access a Dataverse collection's permissions page, you will see three sections:
122
+
When you access a Dataverse collection's permissions page, you will see three or four sections:
123
123
124
124
**Permissions:** Here you can decide the requirements that determine which types of users can add datasets and sub Dataverse collections to your Dataverse collection, and what permissions they'll be granted when they do so.
125
125
126
126
**Users/Groups:** Here you can assign roles to specific users or groups, determining which actions they are permitted to take on your Dataverse collection. You can also reference a list of all users who have roles assigned to them for your Dataverse collection and remove their roles if you please.
127
127
128
128
**Roles:** Here you can reference a full list of roles that can be assigned to users of your Dataverse collection. Each role lists the permissions that it offers.
129
129
130
+
**Role Assignment History** If enabled, you'll be able to see the history of when roles have been assigned and revoked and by whom.
131
+
130
132
Please note that even on a newly created Dataverse collection, you may see user and groups have already been granted role(s) if your installation has ``:InheritParentRoleAssignments`` set. For more on this setting, see the :doc:`/installation/config` section of the Installation Guide.
0 commit comments