DANS Microservices

Several of the components in the architecture are implemented as microservices and developed by DANS. Microservice projects often have an associated API project, containing the OpenAPI specification as well as a Command Line Interface (CLI) project that provides a command line tool for interacting with the microservice.

API versioning

The head of the API project is not necessarily the version implemented by the microservice, but rather the latest version of the OpenAPI specification.

dd-confirm-archiving

Monitors dataset version exports that are being archived by dd-data-vault and registers the archival timestamp in the Vault Catalog once the export is archived in the DANS Data Vault.

Docs Code
dd-confirm-archiving https://github.com/DANS-KNAW/dd-confirm-archiving
dd-confirm-archiving-api https://github.com/DANS-KNAW/dd-confirm-archiving-api

dd-data-vault

Service that manages a Data Vault Storage Root and provides a REST API for interacting with it.

Docs Code
dd-data-vault https://github.com/DANS-KNAW/dd-data-vault
dd-data-vault-api https://github.com/DANS-KNAW/dd-data-vault-api
dd-data-vault-cli https://github.com/DANS-KNAW/dd-data-vault-cli

dd-dataverse-authenticator

A proxy that authenticates clients on behalf of Dataverse, using the basic auth protocol or a Dataverse API token. It is used by dd-sword2 to authenticate its clients by their Dataverse account credentials.

Docs Code
dd-dataverse-authenticator https://github.com/DANS-KNAW/dd-dataverse-authenticator

dd-dataverse-cli

Command line tool for interacting with the Dataverse service. It uses dans-dataverse-client-lib to communicate with the Dataverse API.

Docs Code
dd-dataverse-cli https://github.com/DANS-KNAW/dd-dataverse-cli

Replacement for dans-datastation-tools

This will replace most of the old dans-datastation-tools command line tools, which are now deprecated.

dd-dataverse-ingest

Service for ingesting deposit directories into Dataverse.

Docs Code
dd-dataverse-ingest https://github.com/DANS-KNAW/dd-dataverse-ingest
dd-dataverse-ingest-api https://github.com/DANS-KNAW/dd-dataverse-ingest-api
dd-dataverse-ingest-cli https://github.com/DANS-KNAW/dd-dataverse-ingest-cli

dd-gmh

Command line tool for interacting with the BRI-GMH resolver to resolve a DANS Persistent Identifier (NBN) to a URL.

Docs Code
dd-gmh-api https://github.com/DANS-KNAW/dd-gmh-api
In code https://persistent-identifier.nl/gmh-registration-service/api/v1/openapi.yaml
dd-gmh-cli https://github.com/DANS-KNAW/dd-gmh-cli

OpenAPI specification

The dd-gmh-api project contains a copy of the OpenAPI specification to be used in the build process of the dd-gmh-cli project. Note, however, that the GMH used to be maintained by DANS, but is currently maintained and hosted by Seecr on behalf of the Koninklijke Bibliotheek (KB). The authoritative OpenAPI specification is published at https://persistent-identifier.nl/gmh-registration-service/api/v1/openapi.yaml.

dd-manage-deposit

Service that manages and maintains information about deposits in a deposit area.

Docs Code
dd-manage-deposit https://github.com/DANS-KNAW/dd-manage-deposit
dd-manage-deposit-api https://github.com/DANS-KNAW/dd-manage-deposit-api
dd-manage-deposit-cli https://github.com/DANS-KNAW/dd-manage-deposit-cli

API and CLI not yet implemented

The current implementation of dd-manage-deposit does not yet implement dd-manage-deposit-api and dd-manage-deposit-cli, but instead has a manually coded API and CLI.

dd-sword2

DANS implementation of the SWORD v2 protocol for automated deposits.

Docs Code
dd-sword2 https://github.com/DANS-KNAW/dd-sword2
dd-dans-sword2-examples https://github.com/DANS-KNAW/dd-dans-sword2-examples

dd-transfer-to-vault

Service for preparing Dataset Version Exports for storage in the DANS Data Vault. This includes validation, registering the NBN for a dataset with the BRI-GMH resolver, creating a vault catalog entry and handing over the bag to the dd-data-vault service.

Docs Code
dd-transfer-to-vault https://github.com/DANS-KNAW/dd-transfer-to-vault

dd-validate-bagpack

Service that checks whether a bag complies with the BagPack specification and the DANS BagPack Profile. This service is used by dd-transfer-to-vault to make sure that the Dataset Version Exports (DVE) that are uploaded to the DANS Data Vault are valid.

Docs Code
dd-validate-bagback https://github.com/DANS-KNAW/dd-validate-bagback
dans-bagpack-profile https://github.com/DANS-KNAW/dans-bagpack-profile

NOT YET IMPLEMENTED

This service is not yet implemented.

dd-validate-dans-bag

Service that checks whether a bag complies with DANS BagIt Profile v1. It is used by dd-dataverse-ingest and dd-vault-ingest to validate bags that are uploaded via dd-sword2.

Docs Code
dd-validate-dans-bag https://github.com/DANS-KNAW/dd-validate-dans-bag
dd-validate-dans-bag-api https://github.com/DANS-KNAW/dd-validate-dans-bag-api
dd-validate-dans-bag-cli https://github.com/DANS-KNAW/dd-validate-dans-bag-cli
DANS BagIt Profile v1 https://github.com/DANS-KNAW/dans-bagit-profile
DANS schema https://github.com/DANS-KNAW/dans-schema

dd-vault-catalog

Service that manages a catalog of all Dataset Version Exports in the DANS Data Vault. It exposes a summary page for each stored dataset.

Docs Code
dd-vault-catalog https://github.com/DANS-KNAW/dd-vault-catalog
dd-vault-catalog-api https://github.com/DANS-KNAW/dd-vault-catalog-api
dd-vault-catalog-cli https://github.com/DANS-KNAW/dd-vault-catalog-cli

dd-vault-ingest

Service for converting deposits coming in via Vault as a Service to BagPacks.

Docs Code
dd-vault-ingest https://github.com/DANS-KNAW/dd-vault-ingest

dd-vault-metadata

A service that fills in the Vault Metadata block for a dataset version in Datavers. These metadata are by dd-transfer-to-vault to catalogue the long-term preservation copy of the dataset version when it is stored on tape.

Docs Code
dd-vault-metadata https://github.com/DANS-KNAW/dd-vault-metadata
dd-vault-metadata-api https://github.com/DANS-KNAW/dd-vault-metadata-api
Vault Metadata block N/A

API not yet implemented

The current implementation of dd-vault-metadata does not yet implement dd-vault-metadata-api, but instead has a manually coded API.

dd-virus-scan

A service that scans all files in a dataset for virus using clamav and blocks publication if a virus is found.

Docs Code
dd-virus-scan https://github.com/DANS-KNAW/dd-virus-scan
dd-virus-scan-api https://github.com/DANS-KNAW/dd-virus-scan-api

API not yet implemented

The current implementation of dd-virus-scan does not yet implement dd-virus-scan-api, but instead has a manually coded API.

dans-datastation-tools (deprecated)

Command line utilities for Data Station application management.

Docs Code
dans-datastation-tools https://github.com/DANS-KNAW/dans-datastation-tools