The One To Many (OTM) Bridge API Specification is one of two APIs used to support communication between digital content repository systems (Repository) and distributed digital preservation systems (DDP). An application implementing the OTM Bridge API (Bridge) will receive requests to deposit, restore, or delete content in a DDP from an application implementing the OTM Repository Gateway API (Gateway). The purpose of the Bridge is to perform the transfer and workflow tasks required to collect and distribute content managed by DDP systems. The Bridge is intended to provide a consistent interface for applications needing to interact with DDP systems as well as a consistent interface for DDP systems that would like to accept content from a variety of content repositories. The Bridge application is expected to be hosted by a DDP service as an extension of their service offering.

Status of This Document

This document is a draft of a specification, created as part of the One to Many grant, funded by the Andrew W. Mellon Foundation.

Base Endpoints

Bridge Details

Provides information about the Bridge application. Can also be used to verify that the Bridge application is available at the expected URL.

Expected client(s): Gateway, DDP

Account Management Endpoints

Add Account

Allows the DDP to create a new user account in the Bridge. After this call it will be possible for the OTM Gateway to register with the Bridge. This call can also be used to reset the access credentials for an account.

Expected client(s): DDP

List Accounts

Allows the DDP to list all accounts known by the Bridge

Expected client(s): DDP

Register

Allows a Gateway to register itself with the Bridge. The information provided in this registration will allow the Bridge to make calls back to the Gateway, such as to pull content listed in a deposit request. This call must be made prior to calls to deposit content. This call may also be made to update the Gateway registration information.

Expected client(s): Gateway

Deposit Endpoints

Deposit Content

Requests that a set of content be deposited into the DDP

Expected client(s): Gateway

List Deposits

Retrieves a listing of all initiated and in-process deposits. This list includes all deposits that have been requested (via Deposit Content) but have not yet completed the deposit process (which occurs when the DDP calls Complete Deposit)

Expected client(s): Gateway, DDP

Get Deposit Status

Allows the Gateway to ask for status of a specific deposit

Expected client(s): Gateway

Complete Deposit

Allows the DDP to inform the Bridge that a deposit has completed

Expected client(s): DDP

Discovery Endpoints

List Content

Retrieves a list of all deposited filegroup IDs

Expected client(s): Gateway

Get Content Details

Retrieves details about a deposited filegroup, including versions and associated files

Expected client(s): Gateway

Audit Endpoints

Add Audit Event

Update audit index by providing additional audit details

Expected client(s): DDP

Get Audit Log

Retrieves an audit history report. The report will list audit events associated with a single file or set of files in a filegroup.

Expected client(s): Gateway

Restore Endpoints

Restore Content

Requests that content be made available for restore

Expected client(s): Gateway

List Restores

Retrieves a listing of all in-process restores

Expected client(s): Gateway, DDP

Get Restore

Provides details of the restore request to allow the request to be fulfilled by the DDP

Expected client(s): DDP

Get Restore Status

Allows the repository to ask for status of a specific content restore action

Expected client(s): Gateway

Get Restored Content

Allows for the retrieval of restored content from the Bridge

Expected client(s): Gateway

Complete Restore

Allows the DDP to inform the Bridge that a restore has completed

Expected client(s): DDP

Delete Endpoints

Delete Content

Removes one or more files from DDP storage

List Deletes

Retrieves a listing of all in-process deletes

Expected client(s): Gateway, DDP

Get Delete

Provides details of the delete request to allow the request to be fulfilled by the DDP

Expected client(s): DDP

Get Delete Status

Allows the repository to ask for status of a content delete action

Expected client(s): Gateway

Complete Delete

Allows the DDP to inform the Bridge that a delete has completed

Expected client(s): DDP

Status

Deposit Status

All Deposit Endpoints must support the following set of status values. Other status values may be added to this list to provide additional detail about processing activity.

Restore Status

All Restore endpoints must support the following set of status values. Other status values may be added to this list to provide additional detail about processing activity.

Delete Status

All Delete endpoints must support the following set of status values. Other status values may be added to this list to provide additional detail about processing activity.

Authentication

Each endpoint MUST support HTTP Basic Authentication as described in [[RFC7617]] and allow access for registered credentials for Expected clients. Bridge implementations MAY support other authentication methods and/or allow access to access to using credentails other than those registered via the Add Account and Register endpoints.