Skip to main content

A module for DOI registration

Project description

OARepo DOI

OARepo DOI adds community-specific DOI configuration to OARepo/InvenioRDM installations. It provides a DOI settings service and administration views, and extends the DataCite PID provider so DOI registration can use credentials configured for the record's default community or for the default fallback configuration.

Features

  • Stores DataCite credentials per community.
  • Resolves DOI credentials from a record's default community.
  • Supports a default DOI settings record with community_slug set to *, used when the record has no matching community DOI settings.
  • Falls back to the standard global DataCite configuration when neither community-specific nor default DOI settings exist.
  • Registers DOI settings in the Invenio administration interface.
  • Keeps DataCite passwords encrypted in the database.

Installation

The package is intended to be installed as part of an OARepo 14 based application.

pip install oarepo-doi

DOI Settings

Each DOI settings record connects a community, or the default fallback, to DataCite credentials:

  • community_slug: slug of the community using these DOI credentials, or * for default DOI settings
  • prefix: DataCite DOI prefix
  • username: DataCite username
  • password: DataCite password, stored encrypted

Only one DOI settings record can exist for a given community slug. Only one default DOI settings record with community_slug set to * can exist.

The service is registered under the community-doi service id and uses the doi-settings search alias.

REST API

The DOI settings resource is exposed under:

/doi_settings
/doi_settings/<id>

The resource supports reading, updating and deleting DOI settings records. Search, create, update and delete operations are protected by the DOI settings permission policy and are available to system processes and administration users.

Example payload:

{
  "community_slug": "example-community",
  "prefix": "10.12345",
  "username": "datacite-user",
  "password": "datacite-password"
}

Default fallback settings use * as the community slug:

{
  "community_slug": "*",
  "prefix": "10.12345",
  "username": "datacite-user",
  "password": "datacite-password"
}

When a DOI settings record is created or updated, the referenced community must exist. If the community slug cannot be found, the service returns a bad request. The special * community slug is reserved for default DOI settings and does not need to match an existing community.

DataCite Integration

The package provides two record-aware DataCite classes:

  • oarepo_doi.services.providers.client:DataCiteRecordAwareClient
  • oarepo_doi.services.providers.provider:DataCiteRecordAwareProvider

The provider binds the current record to the DataCite client before DOI generation, registration, update, restore and delete operations. The client then looks up DOI settings for the record's default community.

When community DOI settings are found, DOI generation uses the community prefix and the DataCite API client is created from the community username, password and prefix. When no settings exist for the record's default community, the client tries the default DOI settings record where community_slug is *. This default record also applies to records without a default community.

If neither community-specific nor default DOI settings are found, the implementation falls back to the standard InvenioRDM DataCite client and global DATACITE_* configuration.

Configuration

The DataCite client also respects the standard global DataCite configuration when no community-specific or * DOI settings are available, including:

DATACITE_PREFIX = "10.12345"
DATACITE_USERNAME = "user"
DATACITE_PASSWORD = "password"
DATACITE_FORMAT = "{prefix}/{id}"
DATACITE_TEST_MODE = True

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oarepo_doi-7.1.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oarepo_doi-7.1.0-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_doi-7.1.0.tar.gz.

File metadata

  • Download URL: oarepo_doi-7.1.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oarepo_doi-7.1.0.tar.gz
Algorithm Hash digest
SHA256 a09d5b17cedb9638c4f0deb0003c8dfe4b792c9e1659a0b7a9f64c4fad1df8e3
MD5 c52bc7d3e0f1b749fa72a75b3e733250
BLAKE2b-256 378edec7ff08262037701c45557d864856da28f605b2dc2cc9e9df492bf277e3

See more details on using hashes here.

File details

Details for the file oarepo_doi-7.1.0-py3-none-any.whl.

File metadata

  • Download URL: oarepo_doi-7.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oarepo_doi-7.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc4e2f611e3360381d88f9a92278b79cf955d924e9afea45f2ade921dd3685c5
MD5 bfdd13fbcf98e6d2deef156c3b4ce12d
BLAKE2b-256 95afd417f4830c60edf092abe7c75be3127c3ea1e46d65bd812513bc6acab9a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page