Skip to content
Milan Kuchtiak edited this page Jun 17, 2026 · 9 revisions

CLARIN-DSpace Features

CLARIN-DSpace extends DSpace 7 with features tailored to the CLARIN research infrastructure. This page catalogues every major extension — from the licensing framework and persistent-identifier subsystem to submission-workflow enhancements and operations tooling.

Tip: Each section links to the dedicated wiki page (where one exists) and to the relevant source code.


Licensing & Access Control

CLARIN Licenses

A comprehensive license administration framework that lets administrators define custom End User Licenses with configurable labels (PUB / ACA / RES), extended labels (BY, SA, NC, …), and per-license confirmation requirements. Submitters choose a license during submission — either via the Public License Selector guided wizard or by picking directly from the repository's license list.

📖 Clarin-Licenses

License Agreement Dialog

When a non-admin user downloads a bitstream, the system can require a multi-step license agreement: the dialog collects user name, organisation, country, intended use, etc., depending on the license definition. Confirmation can be required always, only once, or not at all. An "allow anonymous" mode lets unauthenticated users agree too.

📖 Clarin-Licenses § License Agreement Dialog

Creative Commons License Support

A dedicated submission step lets submitters select a Creative Commons license for their item, alongside or instead of a CLARIN custom license.

Field-Level Permissions (ACL)

Submission form fields can carry Access Control Lists that restrict read/write access per user or group. This enables admin-only fields (hidden from regular submitters) and fine-grained editing permissions on specific metadata.

📖 FineGrainedFieldPermissions

Bitstream Download Tokens

Time-limited tokens enable secure, one-off bitstream downloads — useful for email-based distribution workflows where a user receives a download link with an embedded token that expires after a configurable period.


Persistent Identifiers

PIDs & Handles

CLARIN-DSpace extends the standard DSpace handle subsystem with:

  • Per-community handle prefixes — different communities can mint handles under different prefixes (with optional sub-prefixes).
  • External handles — handle records that point to an arbitrary URL rather than a DSpace object, useful for aliasing old handles or linking to external services.
  • Content negotiation — appending @format=cmdi to a handle URL resolves to the CMDI metadata record via OAI-PMH instead of the landing page.

📖 PIDs-Persistent-Identifiers · Handle Server Setup (v7)

EPIC PID API Integration

As an alternative to running a local handle server, CLARIN-DSpace can provision handles through the EPIC v2 API. The PID service backend (PIDServiceEPICv2) communicates with an EPIC endpoint to create, update, and resolve handles remotely. Configuration lives in lr.pid.* properties in clarin-dspace.cfg.

Handle Management GUI

An administrative UI for browsing, creating, editing, and deleting handles. Supports creating external handles, editing internal/external handles with optional archiving of old values, and bulk-changing the global handle prefix (with automatic archiving of old handles as external redirects).

📖 For-users § Manage Handle table

DOI Registration

DataCite DOI minting integrated into the item lifecycle. DOIs go through reservation → registration → update phases, managed by doi-organiser cron jobs. Versioned DOIs are supported via ClarinVersionedDOIIdentifierProvider. Custom DIM2DataCite.xsl crosswalks handle CLARIN-specific resource types.

📖 DOI

DOI Configuration per Community (Coming soon)

This feature allows admin to setup the DOI prefix and credentials per community, so for example the items in community A have DOIs started with '10.3897/rio.7-', while the items in community B have DOIs started with '10.3896/rio.6-'.

PR: https://github.com/ufal/clarin-dspace/pull/1370

ORCID Authority

An ORCID authority provider that resolves author identifiers without relying on Solr. ORCID IDs are stored as authority keys on dc.contributor.author and are exposed in DataCite dissemination.

ROR Authority (Coming soon)

The ROR integration allows to store ROR identifier to dc.publisher authority field (in metadatavalue table), that links this metadata to external ROR registry(Research Organization Registry). In the submission page -> publisher field, user is than allowed to search and select a subject registered in ROR.

PR: https://github.com/ufal/clarin-dspace/pull/1352


Submission Workflow

Sharing a Submission / Changing Submitter

A "Save & Share" button generates a unique link that collaborators can use to assume the submitter role and continue an unfinished submission. The link is also emailed to the original submitter and remains valid until the submission is completed.

📖 Sharing-a-submission

Complex Fields

Composite field types group multiple sub-fields into a single form widget. Pre-defined complex types include:

  • contact_person — given name, surname, email, affiliation
  • funding — funding type, project code (with autocomplete), organisation, project name, OpenAIRE ID
  • sizeInfo — size value + unit dropdown

Complex definitions are declared in submission-forms.xml under <form-complex-definitions> and referenced by fields via <input-type complex-definition-ref="…">complex</input-type>.

Admin-Only Fields

Using the ACL mechanism, fields can be restricted so that only administrators see and edit them. For example, the local.hasCMDI field ("Are you going to upload a CMDI file?") is hidden from regular submitters.

Autocomplete

Submission fields can offer autocomplete suggestions from two sources:

  • Solr indexes — e.g. solr-publisher_ac, solr-author_ac, solr-subject_ac, solr-handle_title_ac
  • Static JSON files — e.g. json_static-iso_langs.json for ISO language codes

Configured per-field in submission-forms.xml via autocomplete-custom="…".

CMDI Metadata File Upload

When the admin-only local.hasCMDI flag is set, the submitter can upload a .cmdi file. The system automatically moves it from the ORIGINAL bundle to a dedicated METADATA bundle (CMDIFileBundleMaintainer), where it is exposed via the OAI-PMH CMDI crosswalk (lindat_cmdi.xsl).

📖 WebLicht-Webservice-Registration-through-repository (CMDI workflow used for WebLicht registration)

CLARIN License Steps

Two custom submission steps enforce license selection:

  • License Distribution — the submitter picks a license for the item.
  • License Resource — maps the chosen license to the item's bitstreams.

CLARIN Notice Step

A configurable notice/disclaimer displayed during submission.


Authentication & User Management

Shibboleth AAI + DiscoJuice

Federated authentication via Shibboleth with DiscoJuice identity-provider discovery. The frontend loads DiscoJuice scripts dynamically and passes Shibboleth headers (SHIB-EMAIL, SHIB-NETID, SHIB-IDENTITY-PROVIDER, etc.) to the backend.

📖 Shibboleth · DiscoJuice setup · Shibboleth Accounts

Shibboleth Auto-Registration

When a user authenticates via Shibboleth for the first time, the system can automatically create an account using the IdP-provided attributes (email, name, organisation). If required attributes are missing, a dedicated error page guides the user. The backend implementation (ClarinShibAuthentication) also supports group mapping from Shibboleth headers.

User Registration & Email Verification

A token-based email verification flow for user self-registration. The system generates a ClarinVerificationToken, sends a confirmation email, and activates the account upon verification. User metadata (name, organisation, etc.) is collected via ClarinUserMetadata entities.

Personal Access Tokens (PAT)

Administrators and users can create time-limited API tokens for programmatic access. Tokens are created via the clarin-token CLI command or the REST API, with configurable maximum expiration (clarin.token.max.expiration.time.in.days). The encryption secret must be generated with dspace clarin-token -g.

📖 Personal Access Tokens · Release Notes § 2026.1


Item Display & Services

Featured Services / Refbox

The "reference box" on item pages shows:

  • Citation — formatted citation text with export in BibTeX, RIS, JSON, and other formats.
  • Featured services — links to external services (e.g. PML-TQ, KonText, TEITOK) associated with the item via local.featuredService.<alias> metadata.

Service definitions live in clarin-dspace.cfg (featured.service.* properties). Association is done per-item via the Edit Item → Services tab.

📖 Refbox-services-integration

File Previews

Bitstreams can be previewed directly on the item page. The PreviewContent REST endpoint returns file listings (including directory trees for archives) and content previews. The frontend preview-section component renders file names, sizes, and descriptions.

Item Tombstones

Withdrawn or replaced items display a tombstone page instead of the full item view:

  • Replaced — shows the replacement destination from dc.relation.isreplacedby.
  • Withdrawn — shows the withdrawal reason from local.withdrawn.reason.

Administrators see the full item with a withdrawal banner instead.

📖 For-users § Item Tombstones

ZIP Download

Users can download all bitstreams of an item as a single ZIP archive.

Item Versioning

Enhanced versioning with CLARIN-specific versioned handle and DOI providers. The frontend displays version history with links to previous/next versions. Configuration options control whether submitters can create new versions (versioning.submitterCanCreateNewVersion) and whether previous versions remain archived (versioning.unarchive.previous.version).

📖 Versioning Guide · Versioning Theory

WebLicht Integration

Webservices can be registered in the repository by submitting a CMDI metadata file to a dedicated collection. The collection is exposed via OAI-PMH, and WebLicht harvests the metadata to discover and integrate the service.

📖 WebLicht-Webservice-Registration-through-repository


Analytics & Monitoring

Matomo Analytics

Custom tracking of bitstream downloads and OAI-PMH requests via Matomo (formerly Piwik). Supports direct and cached tracking modes. Users can subscribe to periodic PDF statistics reports for specific items via MatomoReportSubscription.

📖 Start-Matomo

Health Report & Report Diff

A DB-backed health-check system (dspace health-report) that produces JSON snapshots covering general info, item summary, user summary, license summary, embargo check, and metadata check. Reports are stored in the report_result table. The dspace report-diff command compares two snapshots and produces an executive summary with deltas, optionally emailed to administrators.

📖 health-report

Google Dataset Search

Items that meet certain conditions get a <script type="application/ld+json"> block injected into their landing page, following the Google Dataset Search schema. Mapping is configurable via google-metadata.properties; items with blacklisted dc.type values or without bitstreams can be excluded.

📖 Support-for-Google-Dataset-Search


Operations & Admin Tools

S3 Storage Integration

Bitstreams can be stored in S3-compatible object storage with optional presigned-URL direct downloads. Supports sync mode (dual local + S3 storage), configurable multipart uploads, and multiple deployment scenarios (new repo, retrofit existing repo).

📖 S3-Storage-Integration · S3 — CESNET

File Downloader CLI

The file-downloader CLI script downloads a file from a URL and stores it as a bitstream on an item — useful for ingesting large files that cannot be uploaded through the browser.

Curation Tasks

Quality-assurance tasks that can be run against items, collections, or communities:

Task Key Description
Required Metadata requiredmetadata Checks that mandatory metadata fields are present
Metadata QA metadataqa Quality checks on metadata values
Link Checker checklinks Verifies URLs in metadata values
Handle Checker checkhandles Verifies item handles resolve correctly
Register DOI registerdoi Registers DOIs with DataCite
Profile Formats profileformats Profiles bitstream content formats

Tasks are registered in curate.cfg and can be invoked via CLI or the admin UI.

CLI Scripts

CLARIN-specific command-line tools:

Command Description
clarin-token Create, invalidate, or generate encryption keys for Personal Access Tokens
process-cleaner Clean up old process records (completed, failed, running)
item-version-linker Link two items into a versioning relationship
file-downloader Download a file from URL and add as bitstream
file-preview Generate preview for files in item(s)
health-report Generate a health-check snapshot
report-diff Compare two health-report snapshots

Bulk Import REST API

A set of import endpoints at /api/clarin/import/* for migrating data into CLARIN-DSpace:

  • Handles, users (EPerson), licenses, user metadata, bitstreams, community/collection logos

Configuration File Admin API

REST API for reading and updating DSpace configuration files (e.g. item-submission.xml) at runtime. Controlled by config.admin.updateable.files property — only explicitly listed files can be modified.

CMDI Metadata Export

A dedicated REST endpoint (/cmdi/oai-metadata) that returns CMDI-formatted metadata for items, supporting the CLARIN metadata infrastructure.

Home


Getting Started

Features

Operations

For Users

Development

Reference


Archive (v5 / stale)

Clone this wiki locally