Skip to content

Commit 6f0ec02

Browse files
committed
Merge remote-tracking branch 'IQSS/develop' into develop
2 parents 65f4d7f + 70b6e26 commit 6f0ec02

188 files changed

Lines changed: 8405 additions & 1288 deletions

File tree

Some content is hidden

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

.github/workflows/deploy_beta_testing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
overwrite: true
7171

7272
- name: Execute payara war deployment remotely
73-
uses: appleboy/ssh-action@v1.2.2
73+
uses: appleboy/ssh-action@v1.2.3
7474
env:
7575
INPUT_WAR_FILE: ${{ env.war_file }}
7676
with:
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
### Support for COAR Notify Relationship Announcement
2+
3+
Dataverse now supports sending and receiving [Linked Data Notification ](https://www.w3.org/TR/ldn/) messages involved in the
4+
[COAR Notify Relationship Announcement Workflow](https://coar-notify.net/catalogue/workflows/repository-relationship-repository/).
5+
6+
Dataverse can send messages to configured repositories announcing that a dataset has a related publication (as defined in the dataset metadata). This may be done automatically upon publication or triggered manually by a superuser. The receiving repository may do anything with the message, with the default expectation being that the repository will create a backlink from the publication to the dataset (assuming the publication exists in the repository, admins agree the link makes sense, etc.)
7+
8+
Conversely, Dataverse can receive notices from other configured repositories announcing relationships between their publications and datasets. If the referenced dataset exists in the Dataverse instance, a notification will be sent to users who can publish the dataset, or, optionally, only superusers who can publish the dataset. They can then decide whether to create a backlink to the publication in the dataset metadata.
9+
10+
(Earlier releases of Dataverse had experimental support in this area that was based on message formats defined prior to finalization of the COAR Notify specification for relationship announcements.)
11+
12+
#### New Settings/JVM Options
13+
14+
Configuration for sending messages involves specifying the
15+
:COARNotifyRelationshipAnnouncementTargets and :COARNotifyRelationshipAnnouncementTriggerFields
16+
17+
Configuration to receive messages involves specifying
18+
DATAVERSE_LDN_ALLOWED_HOSTS (dataverse.ldn.allowed-hosts)
19+
20+
Notifications are sent by default to users who can publish a dataset. The option below can be used to restrict notifications to superusers who can publish the dataset.
21+
22+
DATAVERSE_COAR_NOTIFY_RELATIONSHIP_ANNOUNCEMENT_NOTIFY_SUPERSUSERS_ONLY
23+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
### Additional licenses
2+
3+
The following Open Data Commons licenses have been added:
4+
5+
- Open Database License (ODbL)
6+
- Open Data Commons Attribution License (ODC-By)
7+
- Open Data Commons Public Domain Dedication and License (PDDL))
8+
9+
The following software license has been added:
10+
11+
- European Union Public License (EUPL)
12+
13+
The following country-specific license has been added:
14+
15+
- Open Government Licence (OGL UK)
16+
17+
The licenses above are widely recognized and used in Europe and beyond to promote data and software sharing. See [the guides](https://dataverse-guide--11522.org.readthedocs.build/en/11522/installation/config.html#configuring-licenses) and #11522.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
## Database Settings Cleanup
2+
3+
With this release, we remove some legacy specialties around Database Settings and provide better Admin API endpoints for them.
4+
5+
Most important changes:
6+
7+
1. Setting `BuiltinUsers.KEY` was renamed to `:BuiltinUsersKey`, aligned with our general naming pattern for options.
8+
2. Setting `WorkflowsAdmin#IP_WHITELIST_KEY` was renamed to `:WorkflowsAdminIpWhitelist`, aligned with our general naming pattern for options.
9+
3. Setting `:TabularIngestSizeLimit` no longer uses suffixes for formats and becomes a JSON-based setting instead.
10+
4. If set, all three settings will be migrated to their new form automatically for you (Flyway migration).
11+
5. You can no longer (accidentally) create or use arbitrary setting names or languages.
12+
All Admin API endpoints for settings now validate setting names and languages for existence and compliance.
13+
14+
As an administrator of a Dataverse instance, you can now make use of enhanced Bulk Operations on the Settings Admin API:
15+
16+
1. Retrieving all settings as JSON via `GET /api/admin/settings` supports localized options now, too.
17+
2. You can replace all existing settings in an idempotent way sending JSON to `PUT /api/admin/settings`.
18+
This will create, update and remove settings as necessary in one atomic operation.
19+
The new endpoint is especially useful to admins using GitOps or other automations.
20+
It allows control over all Database Settings from a single source without risking an undefined state.
21+
22+
Note: Despite the validation of setting names and languages, the content of any database setting is still not being validated when using the Settings Admin API!
23+
24+
### Updated Database Settings
25+
26+
The following database settings are were added to the official list within the code (to remain valid with the settings cleanup mentioned above):
27+
28+
- `:BagGeneratorThreads`
29+
- `:BagItHandlerEnabled`
30+
- `:BagItLocalPath`
31+
- `:BagValidatorJobPoolSize`
32+
- `:BagValidatorJobWaitInterval`
33+
- `:BagValidatorMaxErrors`
34+
- `:BuiltinUsersKey` - formerly `BuiltinUsers.KEY`
35+
- `:CreateDataFilesMaxErrorsToDisplay`
36+
- `:DRSArchiverConfig` - a Harvard-specific setting
37+
- `:DuraCloudContext`
38+
- `:DuraCloudHost`
39+
- `:DuraCloudPort`
40+
- `:FileCategories`
41+
- `:GoogleCloudBucket`
42+
- `:GoogleCloudProject`
43+
- `:LDNAnnounceRequiredFields`
44+
- `:LDNTarget`
45+
- `:WorkflowsAdminIpWhitelist` - formerly `WorkflowsAdmin#IP_WHITELIST_KEY`
46+
- `:PrePublishDatasetWorkflowId` - formerly `WorkflowServiceBean.WorkflowId:PrePublishDataset`
47+
- `:PostPublishDatasetWorkflowId` - formerly `WorkflowServiceBean.WorkflowId:PostPublishDataset`
48+
49+
### Important Considerations During Upgrade Of Your Installation
50+
51+
1. Running a customized fork? Make sure to add any custom settings to the SettingsServiceBean.Key enum before deploying!
52+
2. Any database settings not contained in the `SettingServiceBean.Key` will be removed from your database during each deployment cycle.
53+
3. As always when upgrading, make sure to backup your database beforehand!
54+
You can also use the existing API endpoint `/api/admin/settings` to retrieve all settings as JSONish data for a quick backup before upgrading.
55+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Get Dataset/Dataverse Storage Driver API
2+
3+
### Changed Json response - breaking change!
4+
5+
The API for getting the Storage Driver info has been changed/extended.
6+
/api/datasets/{identifier}/storageDriver
7+
/api/admin/dataverse/{dataverse-alias}/storageDriver
8+
Rather than returning just the name/id of the driver (with the key "message"), the api call now returns a JSONObject with the driver's "name", "type" and "label", and booleans indicating whether the driver has "directUpload", "directDownload", and/or "uploadOutOfBand" enabled.
9+
10+
This change also affects the /api/admin/dataverse/{dataverse-alias}/storageDriver api call. In addition, this call now supports an optional ?getEffective=true to find the effective storageDriver (the driver that will be used for new datasets in the collection)
11+
12+
See also [the guides](https://dataverse-guide--11664.org.readthedocs.build/en/11664/api/native-api.html#configure-a-dataset-to-store-all-new-files-in-a-specific-file-store), #11695, and #11664.

doc/release-notes/11695-change-api-get-storage-driver.md

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 11744: CORS handling improvements
2+
3+
Modernizes CORS so browser integrations (previewers, external tools, JS clients) work correctly with multiple origins and proper caching.
4+
5+
## Highlights
6+
7+
- Echoes the request origin (`Access-Control-Allow-Origin`) when it matches `dataverse.cors.origin`.
8+
- Adds `Vary: Origin` for per-origin responses (not for wildcard).
9+
- Supports comma‑separated origin list; any `*` in the list = wildcard mode.
10+
- CORS now only enabled when `dataverse.cors.origin` is set (removed `:AllowCors` no longer enables it).
11+
- All comma-separated configuration settings (database properties and MicroProfile config) now ignore spaces around commas; tokens remain unchanged (no quote parsing). Examples: `dataverse.cors.methods`, `dataverse.cors.headers.allow`, `dataverse.cors.headers.expose`. See "Comma-separated configuration values" in the Installation Guide.
12+
- Docs updated (Installation, Big Data Support, External Tools, File Previews); new tests cover edge cases.
13+
14+
## Admin Action
15+
16+
Set `dataverse.cors.origin` explicitly (required). Use explicit origins (not `*`) for credentialed requests. Ensure proxies keep `Vary: Origin`.
17+
18+
Examples:
19+
20+
```
21+
dataverse.cors.origin=https://example.org
22+
dataverse.cors.origin=https://libis.github.io,https://gdcc.github.io
23+
dataverse.cors.origin=*
24+
```
25+
26+
Optional (unquoted):
27+
28+
```
29+
dataverse.cors.methods=GET, POST, OPTIONS, PUT, DELETE
30+
```
31+
32+
## Compatibility
33+
34+
- Must configure `dataverse.cors.origin`; `:AllowCors` was deprecated and has now been removed.
35+
- Any `*` triggers wildcard (no per-origin echo / no Vary header).
36+
37+
## Docs
38+
39+
See updated `dataverse.cors.origin` section and related notes in Big Data Support (S3), External Tools, and File Previews.
40+
41+
<!-- Maintainer note: The generic behavior for comma-separated settings has been documented centrally under Installation Guide > Configuration > "Comma-separated configuration values". Keep this item here as a cross-reference. -->
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## Notifications API Update
2+
3+
**Endpoint:** `notifications/all`
4+
5+
**Enhancements:**
6+
7+
* When the query parameter `inAppNotificationFormat=true` is set:
8+
9+
* Notifications of types:
10+
11+
* `REQUESTFILEACCESS`
12+
* `REQUESTEDFILEACCESS`
13+
* `GRANTFILEACCESS`
14+
* `REJECTFILEACCESS`
15+
16+
now return both the **dataset display name** and **dataset persistent identifier**.
17+
18+
* Notifications of type `DATASETMENTIONED` now return a **formatted JSON** in the `additionalInfo` field when this field contains a valid persisted JSON string, instead of a raw JSON string.
19+
20+
Related issue: #11804
21+
Related PR: #11851
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
The recommended Payara version has been updated to Payara-6.2025.10
2+
3+
Payara 6.2025.10 cannot be used with earlier versions of Dataverse, e.g. v6.8.
4+
5+
Standard Payara upgrade instructions - as in the 6.7 release notes should be added,
6+
but we should assure the instructions don't have you trying to run 6.8 with the latest Payara
7+
and perhaps should explicitly note that you can't.
8+
9+
We should also change the 'standard' language related to Payara updates to include copying the
10+
*.p12 files from the distributed domain1/config directory into the Dataverse domain1/config directory,
11+
at least if/when they are different. Those files include base certs and over time using the old files
12+
can cause SSL errors. If the domain.xml file is old enough, it may also reference *.jks files instead
13+
of the *.p12 ones. That should also be fixed (domain.xml having those lines updated to reference *.p12 files).
14+
FWIW: I ran across this at TDL where a dev machine stopped being able to contact DataCite because the root
15+
cert used by DataCite today is not in the *.jks files that had been copied forward during Payara updates.)
16+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This release adds database indexes on GuestbookResponse and DatasetMetrtics, speeding up Dataset deletes. It also adds a constraint preventing null VersionState, as a matter of good housekeeping practice.

0 commit comments

Comments
 (0)