Skip to main content

invenio-pidbox

InvenioRDM integration for people and organization profile templates backed by the commonmeta SQLite store.

Features

  • Ships people and organization profile templates for InvenioRDM
  • Injects template context for /people/ and /organizations/ routes
  • Reads ORCID and ROR profiles from the commonmeta SQLite store via commonmeta-py and commonmeta-rs
  • Uses the pid_annotations cache layer instead of application-specific people or organizations tables
  • Mirrors the profile integration approach used in rogue-scholar
  • Provides pidbox-backed deposit autocomplete endpoints for creators and affiliations
  • Uses commonmeta-rs Tantivy search for deposit autocomplete suggestions
  • Registers deposit form overridable components to route autocomplete calls to pidbox when configured

Requirements

  • Python 3.14+
  • A commonmeta SQLite database readable through commonmeta-rs

The extension resolves profile data from the path configured in PIDBOX_SQLITE_PATH. Internally, commonmeta-rs reads pid_annotations records with source_id 4 for people (ORCID) and source_id 3 for organizations (ROR).

Installation

uv add invenio-pidbox

This package depends on commonmeta-py, commonmeta-rs, and invenio-app-rdm at runtime, so installing invenio-pidbox pulls in the profile backend automatically.

If the profile store lives outside the default commonmeta location, configure PIDBOX_SQLITE_PATH in your Invenio application.

Configuration

Required

  • PIDBOX_SQLITE_PATH

Path to the commonmeta SQLite store used for profile pages and pidbox autocomplete.

Optional deposit autocomplete configuration

  • APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES
  • APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES_PROVIDER
  • PIDBOX_AUTOCOMPLETE_API

To enable pidbox autocomplete in the deposit form, set:

APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = "search"
APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES_PROVIDER = "pidbox"

By default, pidbox autocomplete endpoints are:

  • /api/pidbox/names
  • /api/pidbox/affiliations
  • /api/pidbox/funders

The funders endpoint returns only organization records where "funder" is present in the types list.

You can override those URLs with:

PIDBOX_AUTOCOMPLETE_API = {
    "names": "/api/pidbox/names",
    "affiliations": "/api/pidbox/affiliations",
    "funders": "/api/pidbox/funders",
}

How It Works

When a request path matches /people/ or /organizations/, the extension loads the corresponding commonmeta record from SQLite and exposes template-friendly objects such as person, organization, employment, identifiers, relations, location, orcid, ror, and search_config.

The extension also registers default profile routes and a country_name template filter so it can run against a standard invenio-app-rdm installation.

For deposit form autocomplete, the extension also:

  • Exposes pidbox autocomplete API routes backed by commonmeta-rs Tantivy search
  • Patches invenio-app-rdm deposit form config at runtime to inject autocomplete endpoint URLs
  • Loads deposit form overridable components that switch person/organization remote selects to pidbox endpoints when the provider is set to pidbox
  • Keeps awards lookup on the existing awards API/workflow (for example awards fixtures), while funder lookup can be switched to pidbox

Development

uv sync --extra tests
uv run pytest

Entry points

Group Name Value
invenio_base.apps invenio_pidbox invenio_pidbox.ext:InvenioPidbox
invenio_base.api_apps invenio_pidbox invenio_pidbox.ext:InvenioPidbox

License

MIT

Download files

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

Source Distribution

invenio_pidbox-0.2.0.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

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

invenio_pidbox-0.2.0-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file invenio_pidbox-0.2.0.tar.gz.

File metadata

  • Download URL: invenio_pidbox-0.2.0.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for invenio_pidbox-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e123418a45feebe7094fd762fcbca76b6858b9ff46a7df70de261f10639a3902
MD5 b5fbc39a918bf12a6d4852e308ebc0ef
BLAKE2b-256 827273c48a9fb9b592a378521fa9cb10a39344117dbb0140708dfe2b4ea7d976

See more details on using hashes here.

File details

Details for the file invenio_pidbox-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: invenio_pidbox-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for invenio_pidbox-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de360ba9d23f3726b1980db8d241c57db96b2a3797b72e04a92a6bc1f3d356c3
MD5 7917e3a321d28ce59d646db49aeef3d6
BLAKE2b-256 42278965857c034eaedd6c6de9c549b4cc98b219fdbb61caa5d3124eee5cf206

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 Sentry Error logging StatusPage Status page