CDD Blog

CDD Vault Update (December 2023 #3)

Written by Admin | Dec 21, 2023 10:53:39 PM

New Password Algorithm

CDD Vault will now use the Zxcvbn password algorithm when users set their passwords. This algorithm analyzes a proposed password and gives it a rating based on how hard it is for hacking software to guess. CDD Vault will require a zxcvbn score of 4 (out of 4).

Update ELN Entries via the API

A new PUT ELN Entries API call can be used to modify the content of existing ELN Entries. Update the title, project, ELN fields and even the body; adding links, text, and files using a new parameter, append_to_body.

This new parameter is an array of JSON objects, each with a specific type and associated parameters:

  • TEXT: { "type": "text", "text": "required text goes here" }
  • LINK: { "type": "link", "url": "required URL goes here, same scheme rules as frontend", "label": "optional label override goes here" }
  • FILE: { "type": "file", "file": <file id> }

This API call:

PUT .../vaults/<vault_id>/eln/entries/<entry_id>

... using this JSON:

   {"append_to_body": [

     {"type": "text", "text": "Description of this experiment"},

     {"type": "link", "url": "https://www.collaborativedrug.com", "label": "This is a link to CDD"},

     {"type": "file", "file": 12345}

     ]}

... will append the content to the existing ELN Entry.

The POST ELN Entries API call can now update the status of an ELN Entry. As an example, to reopen a finalized ELN entry.

For Vaults with Witnessing enabled, these parameters may be used

  • { status_action: submit, witness: required user id }
  • { status_action: approve }
  • { status_action: reject, reason: required string }
  • { status_action: cancel }

For Vaults without Witnessing, this parameter may be used:

  • { status_action: finalize }

And these parameters are available for all ELN enabled Vaults:

  • { status_action: reopen, reason: (string, required) }
  • { status_action: discard }

To submit an Entry for witnessing use this API call:

POST .../vaults/<vault_id>/eln/entries/<eln_entry_id>/status

... using this JSON:

{

       "status_action":"submit",

       "witness":"10276"

}

To reject an ELN Entry use this API call:

POST .../vaults/<vault_id>/eln/entries/<eln_entry_id>/status

... using this JSON:

{

       "status_action":"reject",

       "reason":"Not enough data"

}

To approve/finalize an ELN Entry use this API call:

POST .../vaults/<vault_id>/eln/entries/<eln_entry_id>/status

... using this JSON:

{

       "status_action":"approve"

}.

PUT Runs API Update

Values for custom Run Fields may be updated using PUT Runs.

PUT .../vaults/4493/runs/649838

... using this JSON:

{

   "run_fields":

       {"CRO":"Graceland CRO"}

}

... will update the value of the CRO Run field for the specified Run.

New PUT/POST Calls for the Plates API Endpoint

The new PUT and POST endpoints are now supported for creating/updating Plate objects.

POST .../vaults/4493/plates

PUT .../vaults/4493/plates/12345

When creating a new Plate, the name and projects parameters must be included.

This JSON will create a new Plate:

{ "name": "New Plate 20231219",
  "projects":["Internal Data"] }

The following JSON is returned:

{
    "id": 1239120,
    "class": "plate",
    "created_at": "2023-12-20T15:46:00.000Z",
    "modified_at": "2023-12-20T15:46:00.000Z",
    "name": "CW Plate 20231219",
    "volume": 0.0,
    "concentration": 0.0
}

These parameters can also be used when creating/updating Plates:

  • concentration
  • concentration_unit_label
  • volume
  • volume_unit_label
  • location

To associate Batches to the various Plate Wells, either when creating the Plate or updating a Plate, use the wells parameter (which must be an array).

The JSON for using the concentration, volume and location parameters, along with the well parameter, should resemble:

{ "name": "CW Plate 20231219e",
  "projects":["Internal Data"],
  "concentration":"10",
  "concentration_unit_label":"uM",
  "volume":"100",
  "volume_unit_label":"mL",
  "location":"LabB",
  "wells":[
    {"pos":"A01","batch":142517171},
    {"pos":"A02","batch":126705604},
    {"pos":"A03","batch":126705581}
          ]
 }

Note: The GET Plates API call also has an only_ids parameter for returning only the internal Plate IDs.

GET .../vaults/4493/plates

… using JSON like this:

{ "only_ids":"true" }

… returns the following JSON results:

{
    "count": 5,
    "offset": 0,
    "page_size": 50,
    "objects": [
        282199,
        282200,
        306728,
        366630,
        537940
    ]
}

This blog is authored by members of the CDD Vault community. CDD Vault is a hosted drug discovery informatics platform that securely manages both private and external biological and chemical data. It provides core functionality including chemical registrationdata visualization, inventory, and electronic lab notebook capabilities.