dcmd Command Line Utility¶
The dcmd command-line utility is installed as part of the PyDelfini
package. This tool allows you to interact with a Delfini instance
through the command line or scripts, without needing to use the web
interface or write your own Python code.
Getting Started¶
dcmd is installed whenever you have the PyDelfini package
installed, so if you haven’t already, install PyDelfini using pip:
pip install pydelfini
Next, run dcmd --help to view the basic usage information.
usage: dcmd [-h] [-H HOSTNAME] [--insecure] [-k FN] [-u USERNAME] {auth,cdeset,pdd} ...
options:
-h, --help show this help message and exit
-H HOSTNAME, --hostname HOSTNAME
connect to HOSTNAME
--insecure connect using http rather than https
-k FN, --token-file FN
use FN as the file to hold the login token
-u USERNAME, --username USERNAME
disable interactive login; log in with USERNAME
commands:
{auth,cdeset,pdd}
auth Authentication and authorization operations
cdeset Manipulating CDE sets
pdd Operations on PDDs (data dictionaries)
Connecting to a Delfini instance¶
The first time you run dcmd, you will need to provide the -H
HOSTNAME option to specify the hostname of your Delfini instance. If
you are connecting to a local, unsecured instance, add the
--insecure flag.
dcmd -H delfini.bioteam.net auth whoami
# or, for a local connection
dcmd -H localhost:3000 --insecure auth whoami
It will provide you a URL to visit in order to activate your session. Open this URL in any web browser, then log in, and approve the session activation.
To activate your session, visit the URL below:
https://delfini.bioteam.net/login/activate/Ihze00000000Spg7WfnZ8A.CyJ2o544444444OV3YWeg1HH1ww
The login session will be stored in a login token file, by default in
your home directory named .dcmd-token. You can adjust this by
using the --token-file option, and disable it if needed by setting
the token file to "". While the login session is active, you will
not need to re-activate your session between calls to dcmd.
Alternatively, if you would like to use a username and password
without needing to launch a separate web browser session, specify the
-u USERNAME option. You will be prompted for your password.
Commands and Subcommands¶
dcmd offers a number of operations, grouped into commands and
subcommands. An example of this is:
dcmd auth whoami
Which returns:
expires: '2024-01-29T23:54:01.027581+00:00'
user:
account_id: 22bacc0a-3715-4423-886c-d4da94b7f0d3
email: null
identity:
fqda: zealous-smelt-5507@localhost
primary_id: f04558e3-9297-429a-baa0-2917776073f2
user_name: zealous-smelt-5507
image: https://avatars.githubusercontent.com/u/6315798?v=4
name: Karl Gutwin
The dcmd --help command lists the available commands, while adding
--help to any command will list the available subcommands. Refer
to these outputs for the latest available commands.
auth subcommand¶
auth whoamiPrints out information about your current session.
cdeset subcommand¶
cdeset new cdeset_name descriptionCreates a new CDE set.
Admin access is required.
Positional arguments:
cdeset_name: the name of the new CDE setdescription: a short description of the CDE set
cdeset listLists current CDE sets.
cdeset delete cdeset_nameDeletes a CDE set.
Admin access is required.
Positional arguments:
cdeset_name: the name of the CDE set to delete
cdeset copy-from-pdd cdeset_name collection_id version_id item_idCopy data elements into a CDE set from a PDD.
Admin access is required, as well as access to the specified PDD.
Positional arguments:
cdeset_name: the name of the CDE set to updatecollection_id: the collection UUIDversion_id: the collection version ID (typically “LIVE”)item_id: the item UUID
Optional arguments:
--description DESCRIPTION: update the CDE set description
pdd subcommand¶
pdd upload collection_id filenameUpload a PDD from a local file.
Positional arguments:
collection_id: the collection UUIDfilename: the local filename of the PDD to upload
Optional arguments:
--item-name: override the newly generated item name--folder-id: put the new item into the folder specified by UUID