You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

The bag resource is used by the Ingest-Server and Replication Shell. It describes the base attributes of a collection in Chronopolis.

Bag

FieldTypeDescription

id

Long

The ID of the Bag

size

Long

The bag's size in bytes

name

String

The name of the Bag

creator

String

The user who created the bag in the Ingest Server

depositor

String

The organization to which the Bag belongs

status

BagStatus

Status of the Bag

totalFiles

Long

Number of files in the Bag, including the tag files

createdAt

DateTime

The date the Bag was created in the ingest server

updatedAt

DateTime

The last time the Bag was updated

replicatingNodes

Set<Node>

Nodes who have successfully replicated the bag

requiredReplications

int

Number of replications required for preservation

bagStorage

StagingStorageModel

Active Staging Information for a bag's data

tokenStorage

StagingStorageModel

Active Staging Information for a bag's tokens

BagStatus

An enumerated type describing the various states a bag can have in its lifetime.

  • DEPOSITED - The ingest-server has created a DB record for the bag after notification from an intake service
  • INITIALIZED - The ingest-server has performed necessary tasks before tokenizing (extracting form an archive/file counts and sizes for metadata)
  • TOKENIZED - The ingest-server has created ACE tokens for a bag and written them to a file for replication
  • REPLICATING - Replication requests have been created for a bag which are currently in progress
  • PRESERVED - All replication requests have finished successfully and the number of required replications have been met
  • ERROR - Somewhere along the line something bad happened
Deprecated Status Enums
  • (1.3.0-RELEASE) REPLICATED
  • (1.1.1-RELEASE) STAGED


Bag API Methods

POST /api/bags/

Description: Deposit a Bag in Chronopolis

Request Body: JSON

Request Body Example
{
	"name": "bag-example",
    "depositor": "confluence-wiki",
    "location": "bag-example/confluence-wiki",
    "size": 1048576L,
    "totalFiles": 10L,
    "storageRegion": 1L
}

Response Codes: 201 (Success); 400 (invalid); 401 (unauthenticated); 403 (unauthorized); 409 (conflict)

Response Body: Bag

GET /api/bags/api/bags

Description: Retrieve a paginated listing of Bags in Chronopolis

Query Parameters:

  • name: The name of the bag (partial match
  • creator: The name of the user who created the bag
  • depositor: The name of the depositor who owns the bag
  • region: The Storage Region the Bag is staged in
  • createdAfter: Any Bag created after a given date
  • createdBefore: Any Bag created before a given date
  • updatedAfter: Any Bag updated after a given date
  • updatedBefore: Any Bag updated before a given date
  • active: Boolean flag - matches any Bag with staged data (an active StagingStorage)
  • status: Any Bag with the given BagStatus
  • page: The page number to use, starting at 1
  • page_size: The number of Bags to retrieve at once

Response Codes: 200 (success); 401; 403

Response Body: Page<Bag>

GET /api/bags/<id>

Description: Retrieve a single Bag in Chronopolis by its id

Response Codes: 200; 401; 403; 404 (Not Found)

PUT /api/bags/<id>/storage/<type>

Description: Create a StagingStorage object for a given Bag

Request Body:

Response Codes: 201, 400, 401, 403

GET /api/bags/<id>/storage/<type>

Description: Get a StagingStorage object for a Bag defined by its StorageType

Path Parameters:

  • id: The id of the bag
  • type: The StorageType to retrieve, BAG or TOKEN

Response Codes: 200, 401, 403, 404

POST /api/bags/<id>/storage/<type>/fixity

Description: Create a Fixity for a given StagingStorage

Path Parameters:

  • id: The id of the bag
  • type: The StorageType to retrieve, Bag or TOKEN,

Request Body:

Response Codes: 200, 400, 401, 403, 409

Response Body: Fixity

GET /api/bags/<id>/storage/<type>/fixity

Description: Get all Fixities for a StagingStorage object on a Bag

Path Parameters:

  • id: the id of the bag
  • type: The StorageType to retrieve, BAG or TOKEN

Response Codes: 200, 401, 403

Response Body: Page<Fixity>

GET /api/bags/<id>/storage/<type>/fixity/<alg>
Description: Get a Fixity for a StagingStorage object on a Bag

Path Parameters:

  • id: the id of the bag
  • type: The StorageType to retrieve, BAG or TOKEN
  • alg: The name of the algorithm, e.g. sha256

Response Codes: 200, 401, 403, 404

Response Body: Fixity



Bag Json Example
        {
            "id": 2,
            "size": 1030783586432,
            "totalFiles": 173357,
            "bagStorage": {
                "active": true,
                "size": 1030783586432,
                "region": 1,
                "totalFiles": 173357,
                "path": "ncar/acadis_20150419",
                "fixities": [
                    {
                        "value": "c9680a2ec9a367f2f218a3d90dbcde3bcff9ed3eb8f7d9c61e525ba1735270da",
                        "algorithm": "SHA-256",
                        "createdAt": "2017-11-30T11:02:50.85746Z"
                    }
                ]
            },
            "tokenStorage": {
                "active": true,
                "size": 1,
                "region": 2,
                "totalFiles": 1,
                "path": "ncar/acadis_201504192015-06-06",
                "fixities": [
                    {
                        "value": "67593e0c4b02a2cbeb1c2440589373654a44b7ef93c889f6290569e92ced21ea",
                        "algorithm": "SHA-256",
                        "createdAt": "2017-11-30T11:02:50.85746Z"
                    }
                ]
            },
            "createdAt": "2016-06-07T12:26:18.13944Z",
            "updatedAt": "2016-06-07T12:26:18.13944Z",
            "name": "acadis_20150419",
            "creator": "admin",
            "depositor": "ncar",
            "status": "PRESERVED",
            "requiredReplications": 3,
            "replicatingNodes": [
                "ncar",
                "umiacs",
                "ucsd"
            ]
        }

 

  • No labels