Versions Compared

Key

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

...

Description

The Bag resource is used to store information about a deposit by a Depositor. When displaying a Bag to the outside world, the Ingest Server brings in information about the Bag including its Replications and any active Staging Storage. The size and totalFiles are cached so that a summation does not need to be run every time a Bag is queried from the database.

Depositing Bags

Updating Bag Storage

See alsoRelated resources:

API Description

Bag Model

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

...

Code Block
languagejs
titleBag Json Example
collapsetrue
        {
            "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"
            ]
        }

...


Panel
borderStylesolid
titleBag API

Deposit Bag

  • Request: POST /api/bags/
  • Description: Deposit a Bag in Chronopolis
  • Request Body: application/json
Code Block
languagejs
titleRequest Body Example
collapsetrue
{
	"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 All Bags

  • Request: GET /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 A Single Bag

  • Request: GET /api/bags/:id
  • Description: Retrieve a single Bag in Chronopolis by its id
  • Path Parameters
    • id: The id of the bag
  • Response Codes: 200; 401; 403; 404 (Not Found)

...