Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
titleGeneral Operations

Initialize

  • Purpose: Provides all information needed to initialization the Bridge Ingest App
  • Request: POST https://host:port/bridge/init
  • Request Body: JSON in format:

    Code Block
     {
         "originatorEmailAddress" : "<email address>",        # From email address for notifications
         "duracloudEmailAddresses" : ["<email address>"],     # Email address(es) of DuraCloud administrator
         "dpnEmailAddressestargetStoreEmailAddresses" : ["<email address>"],           # Email address(es) of DPN preservation store (Chronopolis) administrator 
         "duracloudUsername" : "<duracloud username>",        # DuraCloud user's username
         "duracloudPassword" : "<duracloud password",         # DuraCloud user's password
         "awsAccessKey" : "<aws key>",                        # Access key to AWS, with rights to use SES (for notifications)
         "awsSecretKey" : "<aws secret key>",                 # Secret key to AWS
         "databaseUser" : "<database user>",                  # Bridge database username
         "databasePassword" : "<database password>",          # Bridge database password
         "databaseURL" : "jdbc:mysql://<database instance>:<database port>/<database name>?sessionVariables=wait_timeout=200000",   # Bridge database connection URL
         "clean" : "false",                                   # True to reset database to a clean state, false to maintain data
         "finalizerPeriodMs" : 60000,                         # Frequency of polling, optional, default is 3600000 (1 hour)
         "daysToExpireRestore" : 30                           # Time to wait before clearing restored content
    }
     


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {"message" : "success!"}


Version

  • Purpose: Provides the current version of the Bridge App
  • Request: GET https://host:port/bridge/version
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {"version" : "1.0.0"}


...

Panel
titleIngest Operations

Create Snapshot

  • Purpose: Performs a snapshot action
  • Request: PUT https://host:port/bridge/snapshot/(snapshotId)
    • snapshotId - Identifier of the snapshot

  • Request Body: JSON:

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "description" : "",
      "userEmail" : ""
    } 
    • host - DNS host of DuraCloud instance from which snapshot can be taken
    • port - Port on which DuraCloud applications are available
    • storeID - Identifier of Chronopolis staging storage provider on DuraCloud instance
    • spaceID - Identifier of space in which snapshot content resides
    • description - User-supplied description of the snapshot
    • userEmail - User's email address, for notifications
  • Response Code: 200 or 201 on success (201 if snapshot request did not already exist)
  • Response Body: JSON:

    Code Block
    {
      "snapshotId" : "",
      "status": ""
    }


List Snapshots

  • Purpose: Retrieves a list of snapshots. Several optional filters (see query parameters) limit the returned list of snapshots.
  • Request: GET https://host:port/bridge/snapshot ? host=(host) & storeId=(storeID) & status=(status)

    • host - (optional) DuraCloud host from which the snapshot originated. This is generally in the form (account).duracloud.org

    • storeId - (optional) Identifier for DuraCloud storage provider from which the snapshot originated.

    • status - (optional) Current status of the snapshot. 

      • Possible status values:

        • INITIALIZED

        ,
        • TRANSFERRING_FROM_DURACLOUD

        , WAITING
        • REPLICATING_

        FOR
        • TO_

        DPN,
        • STORAGE

        • CLEANING_UP

        ,
        • SNAPSHOT_COMPLETE

        ,
        • FAILED_TO_TRANSFER_FROM_DURACLOUD

        ,
        • ERROR

        ,
        • CANCELLED

  • Response Body: JSON:

    Code Block
    {
      "snapshots" : [
        {
          "snapshotId" : "",  
          "description" : "",
          "status" : ""
        }, 
        ...,
        ...  
      ]
    }


List Snapshot Contents

  • Purpose: Retrieves a list of content items which were included in a snapshot
  • Request:  GET https://host:port/bridge/snapshot/(snapshotId)/content ? page=(pageNumber) & pageSize=(pageSize) & prefix=(prefix)

    • snapshotId - Identifier of the snapshot
    • pageNumber - Page number of content listing
    • pageSize - Number of content items to return in a single response

    • prefix - Limit content list to items which begin with this value

  • Response Body: JSON:

Code Block
{ 
  "contentItems" : [
    { "contentId" : "",
      "contentProperties" : {"" : ""}
    }
  ]
}

 

List Snapshot History

  • Purpose: Retrieves a list of content items which were included in a snapshot
  • Request: GET https://host:port/bridge/snapshot/(snapshotId)/history ? page=(pageNumber) & pageSize=(pageSize)
    • snapshotId - Identifier of the snapshot
    • pageNumber - Page number of history set
    • pageSize - Number of history items to return in a single response
  • Response Body: JSON:
Code Block
{ 
  "totalCount" : (Long) # of historyItems
  "historyItems" : [
    { "historyDate" : (Long) epoch time,
      "history" : "${history item string}"
    },
  ]
}

 

Get Snapshot Details

  • Purpose: Provides the status of a snapshot action
  • Request: GET https://host:port/bridge/snapshot/(snapshotId)
    • snapshotId - Identifier of the snapshot
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "snapshotId" : "",
      "snapshotDate" : "",
      "status" : "",
      "sourceHost" : "",
      "sourceSpaceId" : "",
      "sourceStoreId" : "",
      "description" : "",
      "contentItemCount" : "",
      "totalSizeInBytes" : ""
    }

    Possible values for status:

    • INITIALIZED

    • TRANSFERRING_FROM_DURACLOUD

    • WAITINGREPLICATING_FORTO_DPNSTORAGE

    • CLEANING_UP

    • SNAPSHOT_COMPLETE

    • FAILED_TO_TRANSFER_FROM_DURACLOUD

    • ERROR
    • CANCELLED

Snapshot Complete

  • Purpose: Enables DPN storage provider (Chronopolis) to notify bridge app that snapshot content has been successfully transferred to DPN preservation storage and can now be removed from the bridge storage area (and DuraCloud)
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/complete
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {
      "alternateIds": ["alternate-id-1", "alternate-id-2"]
    }
    • A Snapshot can be mapped to zero or more alternate identifiers . Likely this will be a set of DPN bag IDs, (e.g. IDs for bags which contain the content in this snapshot).

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "SNAPSHOT_COMPLETE",
      "details" : ""
    }


Snapshot Error

  • Purpose: Enables DPN storage provider (Chronopolis) to notify bridge app that processing of the snapshot has resulted in an error
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/error
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {
      "error": ""
    }
    •  

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "SNAPSHOT_ERROR",
      "details" : ""
    }


Restart Snapshot

  • Purpose: Enables restart of snapshots that failed to transfer successfully from DuraCloud.
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/restart
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {}
    •  

  • Response Code: 202 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "INITIALIZED",
      "description" : ""
    }


Cancel Snapshot

  • Purpose: Enables cancellation of a snapshot that is underway. Calls to this method will fail if the snapshot is in the CLEANING_UP or COMPLETE states.
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/cancel
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {}
    •  

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "CANCELLED",
      "description" : ""
    }


Snapshot History Update

  • Purpose: Enables DPN storage provider (Chronopolis) to notify bridge app that a DPN Bag Id (through the alternateIds in snapshotComplete) snapshot has an "update" to its history. Whether a bag snapshot was replicated, succesfully successfully stored, checksumed, etc... this is the REST call to handle any and all updates to the history of a particular Snapshot/DPN Bag.
  • Request: POST https://host:port/bridge/snapshot/(identifier)/history
    • identifier - Either the snapshot ID or an alternate ID (such as a DPN bag ID) which was associated with the snapshot in the Snapshot Complete call
  • Request Body: JSON:

    • Parameters
      • 'history' - single escaped JSON string that can contain a JSON array of objects or strings - the history event we're trying to record
      • 'alternate' - whether the snapshot ID in the URL is the alternate ID or the original snapshot ID.
    • Preferred format (using name/value pairs)

      Code Block
      {"history": "[ {'key1' : 'value1'},{'key2' : 'value2'} ]", "alternate": "false"}


    • Alternative formats (also supported, but UI display may not be ideal)

      Code Block
      {"history": "[ 'value1', 'value2' ]", "alternate": "false"}
      OR 
      {"history": "[ {'key1': 'value1'}, 'value2' ]", "alternate": "false"}
      OR
      {"history": "value1", "alternate": "false"}


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "snapshot" : {SnapshotSummary},
      "history" : "${the history string that was just inserted}"
    }


...

Panel
titleRestore Operations

Request Snapshot Restore

  • Purpose: Enables user to request a restoration of a snapshot
  • Request: PUT https://host:port/bridge/restore

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "snapshotId" : "",
      "userEmail" : ""
    } 

    The email address is the address of the requester. This address will be forwarded along with the details of the restore request to the duracloud admins.

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "description" : ""
    }


Restore Snapshot

  • Purpose: Enables user to initiate the restoration of a snapshot
  • Request: PUT https://host:port/bridge/restore

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "snapshotId" : "",
      "userEmail" : ""
    } 


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "restoreId" : ""
      "status" : ""
    }

     Possible value for status (see Get Restore Details)

Restore Complete

  • Purpose: Enables DPN storage provider (Chronopolis) to notify bridge app that a snapshot has been restored to bridge storage.
  • Request: POST https://host:port/bridge/restore/(restoreId)/complete
    • restoreId - Identifier of the restoration
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : ""
      "details" : ""
    }


Get Restore Details

  • Purpose: Provides the status of a restoration action
  • Request: GET https://host:port/bridge/restore/(restoreId)
    • restoreId - Identifier of the restoration
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "restoreId" : "",
      "snapshotId" : "",
      "status" : "",
      "startDate" : "",
      "endDate" : "",
      "statusText" : "",
      "destinationHost" : "",
      "destinationPort" : "",
      "destinationStoreId" : "",
      "destinationSpaceId" : ""
    }

    Possible values for status:

    • INITIALIZED
    • WAITINGRETRIEVING_FORFROM_DPNSTORAGE
    • DPNSTORAGE_TRANSFERRETRIEVAL_COMPLETE
    • VERIFYING_RETRIEVED_CONTENT
    • VERIFYING_SNAPSHOT_REPO_AGAINST_MANIFEST
    • TRANSFERRING_TO_DURACLOUD
    • TRANSFER_TO_DURACLOUD_COMPLETE
    • VERIFYING_TRANSFERRED_CONTENT
    • CLEANING_UP
    • ERROR
    • RESTORATION_COMPLETE
    • RESTORATION_EXPIRED
    • CANCELLED

Restart Restore

  • Purpose: Enables restart of restores that failed to transfer successfully to DuraCloud.
  • Request: POST https://host:port/bridge/restore/(restoreId)/restart
    • restoreId - Identifier of the restore
  • Request Body: JSON:

    Code Block
    {}
    •  

  • Response Code: 202 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "DPNSTORAGE_TRANSFERRETRIEVAL_COMPLETE",
      "description" : ""
    }


Cancel Restore

  • Purpose: Enables cancellation of a restore that is underway. Calls to this method will fail if the restore is in the CLEANING_UP or COMPLETE states.
  • Request: POST https://host:port/bridge/restore/(restoreId)/cancel
    • restoreId - Identifier of the restoreId
  • Request Body: JSON:

    Code Block
    {}
    •  

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "CANCELLED",
      "description" : ""
    }


...