Skip to main content

oarepo-config

Helper library for writing a clean, high-level invenio.cfg for OARepo/Invenio-RDM based repositories. Instead of hand-assembling dozens of Flask/Invenio config constants, invenio.cfg calls a small number of configure_*() functions; each one computes a group of related settings and writes them directly into invenio.cfg's own configuration, as if you had set them by hand.

📖 Full documentation — API reference (every parameter and every Invenio variable each function sets), environment variables, call ordering, a full example, and how the package works internally.

Installation

pip install oarepo-config

It is normally pulled in transitively as part of an oarepo-app installation, but can also be used standalone. Requires Python 3.14 and oarepo[rdm,tests] 14.x (see pyproject.toml).

Quick start

# invenio.cfg
import oarepo_config as config
from invenio_i18n import lazy_gettext as _

config.initialize_i18n()

config.configure_generic_parameters(
    languages=(("cs", _("Czech")),),
)

config.configure_ui(
    code="myrepo",
    name=_("My Repository"),
    description=_("Description of my repository"),
)

config.configure_communities()
config.configure_cron()
config.configure_stats()

# Feel free to add/override plain CONFIG_VARIABLE = value assignments
# below, or wrap them with config.override_configuration() to source them
# from the environment.

Values are read from a variables/.env file or the process environment (INVENIO_*) — see Configuration sources and precedence for the loading rules, and Ordering for why the calls above are in this order.

Functions

Call these directly at module level in invenio.cfg (see how it works internally for why). Click a function for its full parameter docs and the exact list of Invenio config variables it sets.

Function What it does
initialize_i18n() Enable translated validation error messages.
initialize_glitchtip(dsn=None, deployment_version=None) Set up error reporting to Glitchtip/Sentry (optional dependency).
configure_generic_parameters(languages=..., use_path_pid_ids=False) Core infrastructure: URLs, security headers, login, database, S3, OpenSearch, Redis, Celery, secret key, default identifier/vocabulary schemes. Call this first.
configure_ui(code=..., name=..., ...) Branding, theme, page templates, front page, analytics, and Content Security Policy (via CSP(...)).
configure_communities(communities_roles=None) Community roles and who can do what inside a community.
configure_workflows(*workflow_definitions, ...) Set up submission/review workflows from IndividualWorkflow/CommunityWorkflow definitions. Preferred over register_workflow() for most repositories.
register_workflow(workflow_code, workflow_name, permissions_policy, requests_policy) Low-level, single-workflow building block; registers one workflow directly instead of going through configure_workflows(). Warns by default recommending configure_workflows() instead - pass use_low_level_workflows=True to silence it.
configure_cron(**extra_cron_items) Scheduled background jobs (CELERY_BEAT_SCHEDULE).
configure_stats(enable=True) Usage statistics (record views, downloads, ...).
configure_vocabulary(code, **kwargs) Declare a custom controlled vocabulary.
configure_datastreams(readers=None, writers=None, transformers=None) Register custom vocabulary-import sources.
configure_jobs(permission_policy=None, logging_level=None) Who can view "Jobs" admin logs, and how verbose they are.
configure_oai() OAI-PMH repository name. Call after configure_ui().
configure_einfra_oidc() "Log in with e-INFRA" (CESNET/Perun) single sign-on.
configure_llm(api_token=None, ...) LLM client(s) for oarepo-checks' AI-assisted record validation (optional dependency).
add_model(model_package_name) Register a data model for global/cross-model search.
load_configuration_variables() Read the deployment's INVENIO_... configuration values.
override_configuration(env=None) Set arbitrary config constants straight from INVENIO_<X> env vars.

Documentation

The full documentation site covers everything that doesn't fit here: the complete environment variable reference, call-ordering rules, a full production invenio.cfg example, and how the "write into invenio.cfg's globals" mechanism works internally. Build it locally with ./docs/build.sh (add --open or --serve).

Metadata

Release files for oarepo-config 2.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oarepo-config 2.1.3
File Size Uploaded
oarepo_config-2.1.3.tar.gz 45.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oarepo-config 2.1.3
File Interpreter ABI Platform
oarepo_config-2.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 106.3 kB

Release files / oarepo_config-2.1.3.tar.gz

Download URL oarepo_config-2.1.3.tar.gz
Size 45.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d0db07432ef64d549e4a333daf2996890480e12182884351f2724dfc6b0a105d
BLAKE2b-256 checksum
How to use checksums
d48b9a003c2738678653934ca76fa972b9dd836c3d0e1130a1fb343610019eb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / oarepo_config-2.1.3-py3-none-any.whl

Download URL oarepo_config-2.1.3-py3-none-any.whl
Size 60.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
809fb88b3d5344548b9c1e2390abc9830e23c52b592f8000b61f82189f72020d
BLAKE2b-256 checksum
How to use checksums
a43d3db9777c1a6e7b37cf7f7c360156ce9e761a15f93a669c89511330e840a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

2.1.3 This release

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page