inveniosoftware / product-rdm

InvenioRDM Product Roadmap
10 stars 0 forks source link

Handling DOIs for restricted records #178

Closed ppanero closed 1 month ago

ppanero commented 3 years ago

A record might get a DOI reserved when creating a draft. However, then the access rules might change. The use cases are the following:

Related issues:

tmorrell commented 3 years ago

I think we want embargoed records to have published DOIs. Embargoed record metadata is public so there is no risk in sending metadata to DataCite. For our common embargo use case (files under review for a publication) you need the DOI to be registered so editors and reviewers can see that the DOI works.

For records where access is "restricted", I think there is very limited risk in having a reserved DOI. Reserved DOIs don't show up in any public system and aren't even in the handle system. I guess it depends on your level of concern about restricting access to the metadata, since you are putting information on another system. But the access levels do match between restricted and draft.

The only state change I think we have to worry about is:

ppanero commented 3 years ago

@tmorrell I see your point about embargoed, thanks. In terms of restricted... I think I would still not send the metadata out... For Zenodo/similar use cases is Ok I guess. But for medical or more "confidential" repositories it might not be a good idea to shit metadata out... In that case I guess the question is "why have a DOI provider?"... Maybe @lnielsen can clarify on this use case.

ppanero commented 3 years ago

Add this test:

@pytest.mark.skip("PIDS-FIXME: re-enable when tackling permissions")
def test_reserve_pid_without_login(
    app, location, es_clear, headers, client, minimal_record
):
    """Test the reserve function" without client log in."""
    # Create the draft
    response = client.post(
        "/records", data=json.dumps(minimal_record), headers=headers)

    assert response.status_code == 201
    recid = response.json['id']

    response = client.get(
        f"/records/{recid}/draft/pids/doi", headers=headers)
    assert response.status_code == 403

Among others, just not in the test suite at the moment...

github-actions[bot] commented 3 years ago

This issue was automatically marked as stale.

Herrner commented 2 years ago

But for medical or more "confidential" repositories it might not be a good idea to shit metadata out... In that case I guess the question is "why have a DOI provider?"... Maybe @lnielsen can clarify on this use case.

People who want a DOI should be aware that the metadata is always public (even CC0?), so if you want your metadata to be hidden, don't get a DOI.

github-actions[bot] commented 2 years ago

This issue was automatically marked as stale.

chriz-uniba commented 2 years ago

People who want a DOI should be aware that the metadata is always public (even CC0?), so if you want your metadata to be hidden, don't get a DOI.

Going the other way round:

Said that... I'm sure I didn't thought through all corner cases.

Additional notes:

github-actions[bot] commented 2 years ago

This issue was automatically marked as stale.

github-actions[bot] commented 1 year ago

This issue was automatically marked as stale.

wgresshoff commented 3 months ago

We don't want fully restricted records to register a DOI. If it is only a reserved DOI which is not findable it might be ok.

lnielsen commented 3 months ago

Discussion from the coffee break at the InvenioRDM workshop with Werner, Nico, Martin, Karolina and Christoph.

Proposed solution:

State changes:

chriz-uniba commented 3 months ago

Can someone shortly explain:

fenekku commented 3 months ago

+1 on @chriz-uniba comments. Apart from that the rest of the approach seems good and we would like to see that happen at NU. We are willing to lend a hand.

chokribr commented 2 months ago

Datacite identify three states for registered metadata:

publish | Triggers a state move from draft or registered to findable register | Triggers a state move from draft to registered hide | Triggers a state move from findable to registered

to Move from published to restricted we can use the "hide" state this will make metadata no longer available and findable via the Public API but they will stay viewable by members! https://support.datacite.org/docs/doi-states