Skip to main content

Helper library for writing a clean, high-level invenio.cfg for OARepo/Invenio-RDM based repositories

Project description

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 and analytics.
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.
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).

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_config-1.0.2.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

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

oarepo_config-1.0.2-py3-none-any.whl (51.0 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_config-1.0.2.tar.gz.

File metadata

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

File hashes

Hashes for oarepo_config-1.0.2.tar.gz
Algorithm Hash digest
SHA256 04c9f74f6f2efe69b7cdf99c752bce0b55e4e4a8d797a61f2052e9847d0faf7e
MD5 bdc71f7e2124501dbc844fbe494528cd
BLAKE2b-256 3cc3085066b36000f4e437af734a9012095a2032e6310d23128b8d6e09c202d6

See more details on using hashes here.

File details

Details for the file oarepo_config-1.0.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for oarepo_config-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc5e8624525a77c24fbaa721e27c6fbd43665d9fbca40b6d89368f2192d39e96
MD5 1e9e54dfb9bf94464aa1821af4678bf9
BLAKE2b-256 5430d82da5834626a46d4136bba4183a09cde1feb61494a33a3cd285254b942b

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