Skip to content

Feature Request: Don't create a dataset draft when uploading unchanged metadata #12376

@vera

Description

@vera

Overview of the Feature Request

Currently, when uploading metadata via the API (e.g., PUT /api/datasets/:persistentId/versions/:draft), Dataverse creates a new draft version even if the uploaded metadata is identical to the existing version. This leads to the creation of "empty" drafts.

These empty drafts are visible in the UI's dataset page "Versions" tab with an empty change summary.

I propose that Dataverse should automatically detect if the incoming metadata matches the current version and, if so, skip the creation of a new draft, and return a successful response without modifying the dataset state.

What kind of user is the feature intended for?
(Example users roles: API User, Curator, Depositor, Guest, Superuser, Sysadmin)

API User, Sysadmin

What inspired the request?

Automated scripts that synchronize external metadata with Dataverse. Currently, these scripts must implement client-side logic (retrieving existing metadata, normalizing it, and comparing it with the new data) to decide whether an update is necessary.

What existing behavior do you want changed?

The API currently accepts metadata and creates/updates a draft version regardless of whether the content has actually changed.

Any brand new behavior do you want to add to Dataverse?

Dataverse should perform a comparison between the incoming metadata and the latest version. If they are semantically equivalent, the API should return a success status (e.g., 200 OK) without creating a new draft or modifying the existing one.

Any open or closed issues related to this feature request?

Not aware of any.

Are you thinking about creating a pull request for this feature?
Help is always welcome, is this feature something you or your organization plan to implement?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions