Skip to content

Commit 5f9abe8

Browse files
committed
Merge remote-tracking branch 'IQSS/develop' into Perf1
2 parents 248be67 + 057c3ee commit 5f9abe8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1905
-151
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
## Dataset Types can set available Licenses
2+
3+
Licenses (e.g. "MIT") can now be linked to dataset types (e.g. "software") using new superuser APIs. The create Dataset Type APIs have been extended to allow you to set metadata blocks and/or licenses on the creation of a Dataset Type.
4+
5+
If a license is not available for a given dataset type then the Create Dataset API will prevent that license from being applied to the dataset.
6+
Also, the UI will only show those licenses that are available to a the dataset's dataset type.
7+
8+
For more information, see the guides ([overview](https://dataverse-guide--11385.org.readthedocs.build/en/11385/user/dataset-management.html#dataset-types), [new APIs](https://dataverse-guide--11385.org.readthedocs.build/en/11385/api/native-api.html#set-available-licenses-for-a-dataset-type)), #10519 and #11001.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Added a new API for persistent identifier reconciliation. An unpublished dataset can be updated with a new
2+
pidProvider. If a persistent identifier was already registered when the dataset was registered, this is undone and the
3+
new provider (if changed in the meantime) is used. Note that this change does not affect the storage repository where the old identifier is still
4+
used. See [the guides](https://dataverse-guide--10567.org.readthedocs.build/en/10567/api/native-api.html#reconcile-the-pid-of-a-dataset-if-multiple-pid-providers-are-enabled), #10501, and #10567.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
The recommended Pyara version has been updated to Payara-6.2025.3
2+
3+
Standard Payara upgrade instructions - as in the 6.6 release notes shouldbe added.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
### Rate Limiting Statistics API
2+
3+
CSV dump of Rate Limiting Cache
4+
5+
curl http://localhost:8080/api/admin/rateLimitStats
6+
curl http://localhost:8080/api/admin/rateLimitStats?deltaMinutesFilter=10
7+
8+
See also [the guides](https://dataverse-guide--11359.org.readthedocs.build/en/11359/admin/rate_limiting.html), #11413, and #11359.

doc/sphinx-guides/source/admin/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ This guide documents the functionality only available to superusers (such as "da
3030
mail-groups
3131
collectionquotas
3232
monitoring
33+
rate-limiting
3334
reporting-tools-and-queries
3435
maintenance
3536
backups
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
Rate Limiting
2+
=============
3+
4+
.. contents:: Contents:
5+
:local:
6+
7+
Configuration
8+
-------------
9+
10+
Rate limiting is used to prevent users from over taxing the system either deliberately or by runaway automated processes.
11+
Rate limiting can be configured on a tier level with tier 0 being reserved for guest users and tiers 1-any for authenticated users. New users are defaulted to tier 1.
12+
Superuser accounts are exempt from rate limiting.
13+
Rate limits can be imposed on command APIs by configuring the tier, the command, and the hourly limit in the database.
14+
Two database settings configure the rate limiting.
15+
Note: If either of these settings exist in the database rate limiting will be enabled (note that a Payara restart is required for the :RateLimitingDefaultCapacityTiers setting to take effect). If neither setting exists rate limiting is disabled.
16+
17+
- :RateLimitingDefaultCapacityTiers is the number of calls allowed per hour if the specific command is not configured. The values represent the number of calls per hour per user for tiers 0,1,...
18+
A value of -1 can be used to signify no rate limit. Tiers not specified in this setting will default to `-1` (No Limit). I.e., -d "10000" is equivalent to -d "10000,-1,-1,..."
19+
20+
.. code-block:: bash
21+
22+
curl http://localhost:8080/api/admin/settings/:RateLimitingDefaultCapacityTiers -X PUT -d '10000,20000'
23+
24+
- :RateLimitingCapacityByTierAndAction is a JSON object specifying the rate by tier and a list of actions (commands). This allows for more control over the rate limit of individual API command calls.
25+
In the following example, calls made by a guest user (tier 0) for API GetLatestPublishedDatasetVersionCommand is further limited to only 10 calls per hour, while an authenticated user (tier 1) will be able to make 30 calls per hour to the same API.
26+
27+
:download:`rate-limit-actions.json </_static/installation/files/examples/rate-limit-actions-setting.json>` Example JSON for RateLimitingCapacityByTierAndAction
28+
29+
.. code-block:: bash
30+
31+
curl http://localhost:8080/api/admin/settings/:RateLimitingCapacityByTierAndAction -X PUT -d '[{"tier": 0, "limitPerHour": 10, "actions": ["GetLatestPublishedDatasetVersionCommand", "GetPrivateUrlCommand", "GetDatasetCommand", "GetLatestAccessibleDatasetVersionCommand"]}, {"tier": 0, "limitPerHour": 1, "actions": ["CreateGuestbookResponseCommand", "UpdateDatasetVersionCommand", "DestroyDatasetCommand", "DeleteDataFileCommand", "FinalizeDatasetPublicationCommand", "PublishDatasetCommand"]}, {"tier": 1, "limitPerHour": 30, "actions": ["CreateGuestbookResponseCommand", "GetLatestPublishedDatasetVersionCommand", "GetPrivateUrlCommand", "GetDatasetCommand", "GetLatestAccessibleDatasetVersionCommand", "UpdateDatasetVersionCommand", "DestroyDatasetCommand", "DeleteDataFileCommand", "FinalizeDatasetPublicationCommand", "PublishDatasetCommand"]}]'
32+
33+
Statistics
34+
----------
35+
36+
In order to monitor the rate limiting cache for investigative purposes there is a stats endpoint which returns CSV formatted text.
37+
38+
The CSV contains multiple lists.
39+
40+
- The first list contains the username:command, and number of tokens remaining. This list is sorted by the values and has the header "#<username>:<command>, <available tokens>".
41+
42+
- The second list contains username:command, last updated timestamp in minutes, and delta minutes before now. The header for this list is "#<username>:<command>, <timestamp>, <delta minutes> ## deltaMinutesFilter=1". This list can be filtered to show only the entries with updates within the deltaMinutesFilter requested. ("## deltaMinutesFilter=n" will be added to the header when the filter is included in the call.
43+
44+
.. code-block:: bash
45+
46+
curl http://localhost:8080/api/admin/rateLimitStats
47+
curl http://localhost:8080/api/admin/rateLimitStats?deltaMinutesFilter=10

doc/sphinx-guides/source/admin/user-administration.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ This enables additional settings for each user in the notifications tab of their
112112
* ``SUBMITTEDDS`` Submitted for review
113113
* ``WORKFLOW_FAILURE`` External workflow run has failed
114114
* ``WORKFLOW_SUCCESS`` External workflow run has succeeded
115+
* ``PIDRECONCILED`` Dataset persistent identifier changed
115116

116117
After enabling this feature, all notifications are enabled by default, until this is changed by the user.
117118

0 commit comments

Comments
 (0)