Skip to main content

Plugins

OpenCDMP is built around a plugin architecture that allows you to extend the platform with custom services for file export/import, repository deposit, and plan evaluation. Each plugin is an independent Spring Boot microservice that registers with OpenCDMP and is then available to users through the standard UI.

Plugin Types​

There are three plugin types:

Plugin TypePurposeBase Package
File TransformerExport plans/descriptions to custom file formats, or import from themorg.opencdmp:file-transformer-base
Deposit ServiceDeposit plans to external repositories and receive DOIsorg.opencdmp:repository-deposit-base
EvaluatorAssess plans and descriptions against standards or criteriaorg.opencdmp:evaluator-base

How Plugins Work​

All plugin types follow the same pattern:

  1. Implement a client interface — contains your business logic (FileTransformerClient, DepositClient, EvaluatorClient).
  2. Implement a controller interface — exposes REST endpoints the platform calls (FileTransformerController, DepositController, EvaluatorController).
  3. Expose a configuration endpoint — the platform calls this at registration time to discover the plugin's capabilities (supported formats, benchmarks, auth methods, etc.).
  4. Register with OpenCDMP — add the running service URL in Tenant Configuration. The platform then makes the plugin available to users.

Shared Data Models​

All plugins communicate with OpenCDMP using the Common Models package (org.opencdmp:common-models), which defines the data structures for plans, descriptions, and files. See Common Models for the full reference.

Plugin Documentation​