Global Dataverse Community Consortium
Dataverse SPI Plugin API 2.1.0-SNAPSHOT
Dataverse SPI Plugin API
This site provides documentation for the SPI (Service Provider Interface) module for Dataverse.
Project Contents
This project offers a universal Java module to create plugins for Dataverse:
- It provides API contracts a plugin author implements to create a new plugin.
- It provides an easy-to-use annotation
@DataversePlugin, marking an implementation class as such a plugin. - It generates plugin metadata automatically to make a plugin author's life as convenient as possible.
- It allows coordinated data exchange with the core using a core provider concept.
- It helps the core to detect any plugins an administrator adds to their Dataverse installation and validate its compatibility.
Audience
This documentation is intended for developers who want to:
- build Dataverse plugins
- understand the available SPI contracts
- explore integration points
- browse the API reference
Maven Coordinates
The (current) artifact is published as io.gdcc:dataverse-spi to Maven Central. Use it in Maven like this:
<dependency>
<groupId>io.gdcc</groupId>
<artifactId>dataverse-spi</artifactId>
<version>x.y.z</version>
</dependency>
Nnote: if you're using the GDCC Maven Parent, you may omit the version.
Documentation
License
Licensed under the same terms as the Dataverse core project: Apache License, Version 2.0[4].
Context & History
This module did not appear out of thin air. Before it was moved to this project with an independent release cycle and potential governance, it was part of the Dataverse core.
You can find the first ever commit that started it all here: IQSS/dataverse@e560a34e[5]. In an effort back in 2022, funded by DANS and undertaken by Jim Myers, this package originally formed as a separate Maven module. You can find the history and context in core pull request IQSS/dataverse#9175[6].
In 2026, it was decided within the Dataverse Core Dev Team[7] to move the Maven module into a separate repository, enabling an independent release cycle, tags, the works. If you are interested in any commit history that happened before the initial Maven module creation, you can dig your way back from IQSS/dataverse@fa0e2812[8]
- [1] examples.html
- [2] modules.html
- [3] apidocs/index.html
- [4] https://www.apache.org/licenses/LICENSE-2.0.txt
- [5] https://github.com/IQSS/dataverse/commit/e560a34e89b12a08b0e936e0cc8bd429f7a8c7c5
- [6] https://github.com/IQSS/dataverse/pull/9175
- [7] https://dataverse.org/about
- [8] https://github.com/IQSS/dataverse/tree/fa0e28124a15b0db8042959b9fee536591f26f8d/modules/dataverse-spi

