Configuration¶
The Synapse Python client can be configured either programmatically or by using a configuration file.
Default Configuration
The default configuration file does not need to be modified for most use-cases
After installing the Synapse Python client, run the synapse config CLI command to create a .synapseConfig file in your home directory. This file stores configuration options including your Synapse auth token, cache location, multi-threading settings, and storage credentials.
For a reference showing the available settings and their meanings, see the full annotated example .synapseConfig in the GitHub repository.
.synapseConfig sections¶
[default] and [profile <name>]¶
Holds Synapse login credentials. [default] is used when no profile is specified; named profiles use [profile <name>] syntax. See the authentication document for full details including how to create tokens, select profiles, and use environment variables.
[sftp://hostname]¶
Credentials for files stored on SFTP servers. Use one section per server; the section name is the full SFTP URL.
| Key | Description |
|---|---|
username |
Username for the SFTP server. |
password |
Password for the SFTP server. |
[sftp://some.sftp.url.com]
username = sftpuser
password = sftppassword
[https://s3.amazonaws.com/bucket_name]¶
Credentials for files stored in AWS S3 or S3-compatible storage that Synapse does not manage access for. Use one section per bucket; the section name is the full endpoint URL including the bucket name.
| Key | Description |
|---|---|
profile_name |
Name of an AWS CLI profile from ~/.aws/credentials. If omitted, the default AWS profile is used. |
[https://s3.amazonaws.com/bucket_name]
profile_name = local_credential_profile_name
For more information on AWS credentials files, see the AWS CLI documentation.
[cache]¶
Downloaded files are cached to avoid repeat downloads of the same file.
| Key | Description |
|---|---|
location |
Path to the cache directory. Supports ~ and environment variables. Default: ~/.synapseCache. |
[cache]
location = ~/.synapseCache
[debug]¶
When this section is present (no keys required), the client prints debug-level log output. Equivalent to passing debug=True to the Synapse() constructor.
[debug]
[endpoints]¶
Override the default Synapse production service endpoints. Useful for testing against staging or development environments.
| Key | Description |
|---|---|
repoEndpoint |
Synapse repository REST API endpoint. |
authEndpoint |
Synapse authentication service endpoint. |
fileHandleEndpoint |
Synapse file service endpoint. |
portalEndpoint |
Synapse web portal URL. |
Note: The following are the default endpoints.
[endpoints]
repoEndpoint = https://repo-prod.prod.sagebase.org/repo/v1
authEndpoint = https://auth-prod.prod.sagebase.org/auth/v1
fileHandleEndpoint = https://file-prod.prod.sagebase.org/file/v1
portalEndpoint = https://www.synapse.org/
[transfer]¶
Settings to configure how Synapse uploads and downloads data.
| Key | Description |
|---|---|
max_threads |
Number of concurrent threads/connections for file transfers. Applies to AWS S3 transfers (uploads and downloads). Default: min(cpu_count + 4, 128). Maximum: 128. Minimum: 1. |
use_boto_sts |
If true, use AWS STS (Security Token Service) to obtain temporary credentials for S3 transfers instead of using stored AWS credentials directly. Valid values: true or false (case-insensitive). Default: false. |
[transfer]
max_threads = 16
use_boto_sts = false
You may also set max_threads programmatically:
import synapseclient
syn = synapseclient.login()
syn.max_threads = 10