Command Line Client¶
The Synapse Python Client can be used from the command line via the synapse
command.
Note: The command line client is installed along with Installation of the Synapse Python client.
Usage¶
For help, type:
synapse -h
For help on specific commands, type:
synapse [command] -h
Test your login credentials with an auth token environment variable:
Logged in as: username (1234567)
The usage is as follows:
synapse [-h] [--version] [-u SYNAPSEUSER] [-p SYNAPSE_AUTH_TOKEN] [-c CONFIGPATH] [--debug] [--silent] [-s]
[--otel {console,otlp}]
{get,manifest,sync,store,add,mv,cp,get-download-list,associate,delete,query,submit,show,cat,list,config,set-provenance,get-provenance,set-annotations,get-annotations,create,store-table,onweb,login,test-encoding,get-sts-token,migrate}
...
Options¶
Name | Type | Description | Default |
---|---|---|---|
--version |
Flag | Show program’s version number and exit | |
-u, --username |
Option | Username used to connect to Synapse | |
-p, --password |
Option | Auth Token used to connect to Synapse | |
-c, --configPath |
Option | Path to configuration file used to connect to Synapse | “~/.synapseConfig” |
--debug |
Flag | Set to debug mode, additional output and error messages are printed to the console | False |
--silent |
Flag | Set to silent mode, console output is suppressed | False |
-s, --skip-checks |
Flag | Suppress checking for version upgrade messages and endpoint redirection | False |
--otel |
Option | Enable the usage of OpenTelemetry for tracing. Possible choices: console, otlp |
Subcommands¶
- get: downloads a file from Synapse
- manifest: Generate manifest for uploading directory tree to Synapse.
- sync: Synchronize files described in a manifest to Synapse
- store: uploads and adds a file to Synapse
- add: uploads and adds a file to Synapse
- mv: Moves a file/folder in Synapse
- cp: Copies specific versions of synapse content such as files, folders and projects by recursively copying all sub-content
- get-download-list: Download files from the Synapse download cart
- associate: Associate local files with the files stored in Synapse so that calls to “synapse get” and “synapse show” don’t re-download the files but use the already existing file.
- delete: removes a dataset from Synapse
- query: Performs SQL like queries on Synapse
- submit: submit an entity or a file for evaluation
- show: show metadata for an entity
- cat: prints a dataset from Synapse
- list: List Synapse entities contained by the given Project or Folder. Note: May not be supported in future versions of the client.
- config: Create or modify a Synapse configuration file
- set-provenance: create provenance records
- get-provenance: show provenance records
- set-annotations: create annotations records
- get-annotations: show annotations records
- create: Creates folders or projects on Synapse
- store-table: Creates a Synapse Table given a csv
- onweb: opens Synapse website for Entity
- login: Verify credentials can be used to login to Synapse. This does not need to be used prior to executing other commands.
- test-encoding: test character encoding to help diagnose problems
- get-sts-token: Get an STS token for access to AWS S3 storage underlying Synapse
- migrate: Migrate Synapse entities to a different storage location
get
¶
synapse get [-h] [-q queryString] [-v VERSION] [-r] [--followLink] [--limitSearch projId] [--downloadLocation path]
[--multiThreaded] [--manifest {all,root,suppress}]
[local path]
Name | Type | Description | Default |
---|---|---|---|
local path |
Positional | Synapse ID of form syn123 of desired data object. | |
-q, --query |
Named | Optional query parameter, will fetch all of the entities returned by a query. | |
-v, --version |
Named | Synapse version number of entity to retrieve. | Most recent version |
-r, --recursive |
Named | Fetches content in Synapse recursively contained in the parentId specified by id. | False |
--followLink |
Named | Determines whether the link returns the target Entity. | False |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for files if using a path. | |
--downloadLocation |
Named | Directory to download file to. | “./” |
--multiThreaded |
Named | Download file using a multiple threaded implementation. | True |
--manifest |
Named | Determines whether creating manifest file automatically. | “all” |
manifest
¶
Generate manifest for uploading directory tree to Synapse.
synapse manifest [-h] --parent-id syn123 [--manifest-file OUTPUT] PATH
Name | Type | Description | Default |
---|---|---|---|
PATH |
Positional | A path to a file or folder whose manifest will be generated. | |
--parent-id |
Named | Synapse ID of project or folder where to upload data. | |
--manifest-file |
Named | A TSV output file path where the generated manifest is stored. | stdout |
sync
¶
Synchronize files described in a manifest to Synapse.
synapse sync [-h] [--dryRun] [--sendMessages] [--retries INT] FILE
Name | Type | Description | Default |
---|---|---|---|
FILE |
Positional | A tsv file with file locations and metadata to be pushed to Synapse. See synapseutils.sync.syncToSynapse for details on the format of a manifest. | |
--dryRun |
Named | Perform validation without uploading. | False |
--sendMessages |
Named | Send notifications via Synapse messaging (email) at specific intervals, on errors and on completion. | False |
--retries |
Named | Number of retries for failed uploads. | 4 |
store
¶
Uploads and adds a file to Synapse.
synapse store [-h] (--parentid syn123 | --id syn123 | --type TYPE) [--name NAME]
[--description DESCRIPTION | --descriptionFile DESCRIPTION_FILE_PATH] [--used [target [target ...]]]
[--executed [target [target ...]]] [--limitSearch projId] [--noForceVersion] [--annotations ANNOTATIONS]
[--replace]
[FILE]
Name | Type | Description | Default |
---|---|---|---|
FILE |
Positional | File to be added to synapse. | |
--parentid, --parentId |
Named | Synapse ID of project or folder where to upload data (must be specified if –id is not used). | |
--id |
Named | Optional Id of entity in Synapse to be updated. | |
--type |
Named | Type of object, such as “File”, “Folder”, or “Project”, to create in Synapse. | “File” |
--name |
Named | Name of data object in Synapse. | |
--description |
Named | Description of data object in Synapse. | |
--descriptionFile |
Named | Path to a markdown file containing description of project/folder. | |
--used |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) from which the specified entity is derived. | |
--executed |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) that was executed to generate the specified entity. | |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for provenance files. | |
--noForceVersion |
Named | Do not force a new version to be created if the contents of the file have not changed. | False |
--annotations |
Named | Annotations to add as a JSON formatted string, should evaluate to a dictionary (key/value pairs). Example: ‘{“foo”: 1, “bar”:”quux”}’ | |
--replace |
Named | Replace all existing annotations with the given annotations. | False |
add
¶
Uploads and adds a file to Synapse.
synapse add [-h] (--parentid syn123 | --id syn123 | --type TYPE) [--name NAME]
[--description DESCRIPTION | --descriptionFile DESCRIPTION_FILE_PATH] [--used [target [target ...]]]
[--executed [target [target ...]]] [--limitSearch projId] [--noForceVersion] [--annotations ANNOTATIONS] [--replace]
[FILE]
Name | Type | Description | Default |
---|---|---|---|
FILE |
Positional | File to be added to synapse. | |
--parentid, --parentId |
Named | Synapse ID of project or folder where to upload data (must be specified if –id is not used). | |
--id |
Named | Optional Id of entity in Synapse to be updated. | |
--type |
Named | Type of object, such as “File”, “Folder”, or “Project”, to create in Synapse. | “File” |
--name |
Named | Name of data object in Synapse. | |
--description |
Named | Description of data object in Synapse. | |
--descriptionFile |
Named | Path to a markdown file containing description of project/folder. | |
--used |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) from which the specified entity is derived. | |
--executed |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) that was executed to generate the specified entity. | |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for provenance files. | |
--noForceVersion |
Named | Do not force a new version to be created if the contents of the file have not changed. | False |
--annotations |
Named | Annotations to add as a JSON formatted string, should evaluate to a dictionary (key/value pairs). Example: ‘{“foo”: 1, “bar”:”quux”}’ | |
--replace |
Named | Replace all existing annotations with the given annotations. | False |
mv
¶
Moves a file/folder in Synapse.
synapse mv [-h] --id syn123 --parentid syn123
Name | Type | Description |
---|---|---|
--id |
Named | Id of entity in Synapse to be moved. |
--parentid, --parentId |
Named | Synapse ID of project or folder where file/folder will be moved. |
cp
¶
Copies specific versions of synapse content such as files, folders and projects by recursively copying all sub-content.
synapse cp [-h] --destinationId syn123 [--version 1] [--setProvenance traceback] [--updateExisting] [--skipCopyAnnotations]
[--excludeTypes [file table [file table ...]]] [--skipCopyWiki]
syn123
Name | Type | Description | Default |
---|---|---|---|
syn123 |
Positional | Id of entity in Synapse to be copied. | |
--destinationId |
Named | Synapse ID of project or folder where file will be copied to. | |
--version, -v |
Named | Synapse version number of File or Link to retrieve. This parameter cannot be used when copying Projects or Folders. Defaults to most recent version. | Most recent version |
--setProvenance |
Named | Has three values to set the provenance of the copied entity-traceback: Sets to the source entityexisting: Sets to source entity’s original provenance (if it exists)None/none: No provenance is set | "traceback" |
--updateExisting |
Named | Will update the file if there is already a file that is named the same in the destination | False |
--skipCopyAnnotations |
Named | Do not copy the annotations | False |
--excludeTypes |
Named | Accepts a list of entity types (file, table, link) which determines which entity types to not copy. | [] |
--skipCopyWiki |
Named | Do not copy the wiki pages | False |
get-download-list
¶
Download files from the Synapse download cart.
synapse get-download-list [-h] [--downloadLocation path]
Name | Type | Description | Default |
---|---|---|---|
--downloadLocation |
Named | Directory to download file to. | "./" |
associate
¶
Associate local files with the files stored in Synapse so that calls to “synapse get” and “synapse show” don’t re-download the files but use the already existing file.
synapse associate [-h] [--limitSearch projId] [-r] path
Name | Type | Description | Default |
---|---|---|---|
path |
Positional | Local file path. | |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search to. | |
-r |
Named | Perform recursive association with all local files in a folder. | False |
delete
¶
Removes a dataset from Synapse.
synapse delete [-h] [--version VERSION] syn123
Name | Type | Description |
---|---|---|
syn123 |
Positional | Synapse ID of form syn123 of desired data object. |
--version |
Named | Version number to delete of given entity. |
query
¶
Performs SQL like queries on Synapse.
synapse query [-h] [string [string ...]]
Name | Type | Description |
---|---|---|
string |
Positional | A query string. Note that when using the command line query strings must be passed intact as a single string. In most shells this can mean wrapping the query in quotes as appropriate and escaping any quotes that may appear within the query string itself. Example: synapse query "select \"column has spaces\" from syn123" . See Table Examples for more information. |
submit
¶
Submit an entity or a file for evaluation.
synapse submit [-h] [--evaluationID EVALUATIONID] [--evaluationName EVALUATIONNAME] [--entity ENTITY] [--file FILE]
[--parentId PARENTID] [--name NAME] [--teamName TEAMNAME] [--submitterAlias ALIAS] [--used [target [target ...]]]
[--executed [target [target ...]]] [--limitSearch projId]
Name | Type | Description |
---|---|---|
--evaluationID, --evaluationId, --evalID |
Named | Evaluation ID where the entity/file will be submitted. |
--evaluationName, --evalN |
Named | Evaluation Name where the entity/file will be submitted. |
--entity, --eid, --entityId, --id |
Named | Synapse ID of the entity to be submitted. |
--file, -f |
Named | File to be submitted to the challenge. |
--parentId, --parentid, --parent |
Named | Synapse ID of project or folder where to upload data. |
--name |
Named | Name of the submission. |
--teamName, --team |
Named | Submit on behalf of a registered team. |
--submitterAlias, --alias |
Named | A nickname, possibly for display in leaderboards. |
--used |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) from which the specified entity is derived. |
--executed |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) that was executed to generate the specified entity. |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for provenance files. |
show
¶
Show metadata for an entity.
synapse show [-h] [--limitSearch projId] syn123
Name | Type | Description |
---|---|---|
syn123 |
Positional | Synapse ID of form syn123 of desired synapse object. |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for provenance files. |
cat
¶
Prints a dataset from Synapse.
synapse cat [-h] [-v VERSION] syn123
Name | Type | Description | Default |
---|---|---|---|
syn123 |
Positional | Synapse ID of form syn123 of desired data object. | |
-v, --version |
Named | Synapse version number of entity to display. | Most recent version |
list
¶
List Synapse entities contained by the given Project or Folder. Note: May not be supported in future versions of the client.
synapse list [-h] [-r] [-l] [-m] syn123
Name | Type | Description | Default |
---|---|---|---|
syn123 |
Positional | Synapse ID of a project or folder. | |
-r, --recursive |
Named | Recursively list contents of the subtree descending from the given Synapse ID. | False |
-l, --long |
Named | List synapse entities in long format. | False |
-m, --modified |
Named | List modified by and modified date. | False |
config
¶
Create or modify a Synapse configuration file.
synapse config [-h]
Name | Type | Description |
---|---|---|
-h |
Named | Show the help message and exit. |
set-provenance
¶
Create provenance records.
synapse set-provenance [-h] --id syn123 [--name NAME] [--description DESCRIPTION] [-o [OUTPUT_FILE]]
[--used [target [target ...]]] [--executed [target [target ...]]] [--limitSearch projId]
Name | Type | Description |
---|---|---|
--id |
Named | Synapse ID of entity whose provenance we are accessing. |
--name |
Named | Name of the activity that generated the entity. |
--description |
Named | Description of the activity that generated the entity. |
-o, --output |
Named | Output the provenance record in JSON format. |
--used |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) from which the specified entity is derived. |
--executed |
Named | Synapse ID, a url, or a local file path (of a file previously uploaded to Synapse) that was executed to generate the specified entity. |
--limitSearch |
Named | Synapse ID of a container such as project or folder to limit search for provenance files. |
get-provenance
¶
Show provenance records.
synapse get-provenance [-h] --id syn123 [--version version] [-o [OUTPUT_FILE]]
Name | Type | Description |
---|---|---|
--id |
Named | Synapse ID of entity whose provenance we are accessing. |
--version |
Named | Version of Synapse entity whose provenance we are accessing. |
-o, --output |
Named | Output the provenance record in JSON format. |
set-annotations
¶
Create annotations records.
synapse set-annotations [-h] --id syn123 --annotations ANNOTATIONS [-r]
Name | Type | Description | Default |
---|---|---|---|
--id |
Named | Synapse ID of entity whose annotations we are accessing. | |
--annotations |
Named | Annotations to add as a JSON formatted string, should evaluate to a dictionary (key/value pairs). Example: ‘{“foo”: 1, “bar”:”quux”}’. | |
-r, --replace |
Named | Replace all existing annotations with the given annotations. | False |
get-annotations
¶
Show annotations records.
synapse get-annotations [-h] --id syn123 [-o [OUTPUT_FILE]]
Name | Type | Description |
---|---|---|
--id |
Named | Synapse ID of entity whose annotations we are accessing. |
-o, --output |
Named | Output the annotations record in JSON format. |
create
¶
Creates folders or projects on Synapse.
synapse create [-h] [--parentid syn123] --name NAME [--description DESCRIPTION | --descriptionFile DESCRIPTION_FILE_PATH] type
Name | Type | Description |
---|---|---|
type |
Positional | Type of object to create in synapse one of {Project, Folder}. |
--parentid, --parentId |
Named | Synapse ID of project or folder where to place folder [not used with project]. |
--name |
Named | Name of folder/project. |
--description |
Named | Description of project/folder. |
--descriptionFile |
Named | Path to a markdown file containing description of project/folder. |
store-table
¶
Creates a Synapse Table given a csv.
synapse store-table [-h] --name NAME [--parentid syn123] [--csv foo.csv]
Name | Type | Description |
---|---|---|
--name |
Named | Name of Table. |
--parentid, --parentId |
Named | Synapse ID of project. |
--csv |
Named | Path to csv. |
onweb
¶
Opens Synapse website for Entity.
synapse onweb [-h] id
Name | Type | Description |
---|---|---|
id |
Positional | Synapse id. |
login
¶
Verify credentials can be used to login to Synapse. This does not need to be used prior to executing other commands.
synapse login [-h] [-u SYNAPSEUSER] [-p SYNAPSE_AUTH_TOKEN]
Name | Type | Description | Default |
---|---|---|---|
-u, --username |
Named | Username used to connect to Synapse. | |
-p, --password |
Named | Synapse Auth Token (aka: Personal Access Token) used to connect to Synapse |
test-encoding
¶
Test character encoding to help diagnose problems.
synapse test-encoding [-h]
Name | Type | Description |
---|---|---|
-h |
Named | Show the help message and exit. |
get-sts-token
¶
Get an STS token for access to AWS S3 storage underlying Synapse.
synapse get-sts-token [-h] [-o {json,boto,shell,bash,cmd,powershell}] id {read_write,read_only}
Name | Type | Description | Default |
---|---|---|---|
id |
Positional | Synapse id. | |
permission |
Positional | Possible choices: read_write, read_only. | |
-o, --output |
Named | Possible choices: json, boto, shell, bash, cmd, powershell. | "shell" |
migrate
¶
Migrate Synapse entities to a different storage location.
synapse migrate [-h] [--source_storage_location_ids [SOURCE_STORAGE_LOCATION_IDS [SOURCE_STORAGE_LOCATION_IDS ...]]]
[--file_version_strategy FILE_VERSION_STRATEGY] [--include_table_files] [--continue_on_error]
[--csv_log_path CSV_LOG_PATH] [--dryRun] [--force]
id dest_storage_location_id db_path
Name | Type | Description | Default |
---|---|---|---|
id |
Positional | Synapse id. | |
dest_storage_location_id |
Positional | Destination Synapse storage location id. | |
db_path |
Positional | Local system path where a record keeping file can be stored. | |
--source_storage_location_ids |
Named | Source Synapse storage location ids. If specified only files in these storage locations will be migrated. | |
--file_version_strategy |
Named | One of ‘new’, ‘latest’, ‘all’, ‘skip’. New creates a new version of each entity, latest migrates the most recent version, all migrates all versions, skip avoids migrating file entities (use when exclusively targeting table attached files. | "new" |
--include_table_files |
Named | Include table attached files when migrating. | False |
--continue_on_error |
Named | Whether to continue processing other entities if migration of one fails. | False |
--csv_log_path |
Named | Path where to log a csv documenting the changes from the migration. | |
--dryRun |
Named | Dry run, files will be indexed by not migrated. | False |
--force |
Named | Bypass interactive prompt confirming migration. | False |