Skip to main content
Ctrl+K
HERMES Documentation - Home HERMES Documentation - Home
  • Overview

Tutorials

  • Set up automatic software publishing
  • Publish your own HERMES plugin
  • Write your own HERMES plugin
    • Curate plugin
    • Deposit plugin
    • Harvest plugin
    • Process plugin

Plugins Marketplace

  • Plugin Marketplace

Developers

  • Tutorial: Get started w/ development
  • Contribution Guidelines
  • Data model
  • HERMES plugins
  • Architectural Decision Records
    • Use native API interfaces for deposit
    • Use a common data model
    • Define interfaces for inter-module data exchange
    • Use high-level modularization
    • Support curation
    • Use Python as base technology
    • Expose internal data model to allow mapping configurations
    • Test strategy
    • We care for code quality
    • Use click for CLI commands
    • CLI takes single sources and targets only
    • Record provenance of metadata
    • Overall data model design
    • Installing plugins from the marketplace using hermes init
  • API Reference
    • hermes
      • hermes.commands
        • hermes.commands.base
        • hermes.commands.clean
          • hermes.commands.clean.base
        • hermes.commands.cli
        • hermes.commands.curate
          • hermes.commands.curate.base
          • hermes.commands.curate.pass_curate
        • hermes.commands.deposit
          • hermes.commands.deposit.base
          • hermes.commands.deposit.error
          • hermes.commands.deposit.file
          • hermes.commands.deposit.invenio
          • hermes.commands.deposit.invenio_rdm
          • hermes.commands.deposit.rodare
        • hermes.commands.harvest
          • hermes.commands.harvest.base
          • hermes.commands.harvest.cff
          • hermes.commands.harvest.codemeta
          • hermes.commands.harvest.file_exists
          • hermes.commands.harvest.git
          • hermes.commands.harvest.toml
          • hermes.commands.harvest.util
            • hermes.commands.harvest.util.validate_codemeta
        • hermes.commands.init
          • hermes.commands.init.base
          • hermes.commands.init.util
            • hermes.commands.init.util.connect_github
            • hermes.commands.init.util.connect_gitlab
            • hermes.commands.init.util.connect_zenodo
            • hermes.commands.init.util.git_info
            • hermes.commands.init.util.oauth_process
            • hermes.commands.init.util.slim_click
        • hermes.commands.marketplace
        • hermes.commands.postprocess
          • hermes.commands.postprocess.base
          • hermes.commands.postprocess.invenio
          • hermes.commands.postprocess.invenio_rdm
        • hermes.commands.process
          • hermes.commands.process.base
          • hermes.commands.process.invenio_merge
          • hermes.commands.process.standard_merge
        • hermes.commands.report
          • hermes.commands.report.base
      • hermes.error
      • hermes.logger
      • hermes.model
        • hermes.model.api
        • hermes.model.error
        • hermes.model.hermes_cache
        • hermes.model.merge
          • hermes.model.merge.action
          • hermes.model.merge.container
        • hermes.model.provenance
          • hermes.model.provenance.ld_prov
        • hermes.model.types
          • hermes.model.types.ld_container
          • hermes.model.types.ld_context
          • hermes.model.types.ld_dict
          • hermes.model.types.ld_list
          • hermes.model.types.pyld_util
      • hermes.utils
  • Release Process

HERMES project

  • Overview
  • Events
  • Presentations

Related

  • Concept Paper
Funded by the Initiative and Networking Fund of the Helmholtz Association in the framework of the Helmholtz Metadata Collaboration
  • .md

Architectural Decision Records

Architectural Decision Records

  • Use native API interfaces for deposit
  • Use a common data model
  • Define interfaces for inter-module data exchange
  • Use high-level modularization
  • Support curation
  • Use Python as base technology
  • Expose internal data model to allow mapping configurations
  • Test strategy
  • We care for code quality
  • Use click for CLI commands
  • CLI takes single sources and targets only
  • Record provenance of metadata
  • Overall data model design
  • Installing plugins from the marketplace using hermes init

previous

HERMES plugins

next

Use native API interfaces for deposit

By Michael Meinel, Stephan Druskat, Oliver Bertuch, Oliver Knodel, David Pape, Sophie Kernchen, Nitai Heeb, Michael Fritzsche

© Copyright 2025 by Forschungszentrum Jülich (FZJ), German Aerospace Center (DLR) and Helmholtz-Zentrum Dresden-Rossendorf (HZDR).