Releases: Sage-Bionetworks/synapsePythonClient
synapsedesktopclient/v0.1.0-beta
Synapse Desktop Client - Beta Release v0.1.0
Welcome to the first iteration of the Synapse Desktop Client. This is an attempt to provide you with a low-tech, user-friendly solution to start contributing data to, or retrieving data from Synapse.
What's Included in This Release
Core Functionality:
- Upload data to Synapse resources you have access to
- Download data from Synapse resources you have access to
- Simple desktop interface for managing your Synapse interactions
- Access token based authentication
This initial release focuses on the fundamental operations that most users need: getting your data into Synapse and getting it back out when you need it.
⚠️ EXPERIMENTAL SOFTWARE DISCLAIMER ⚠️
IMPORTANT NOTICE - READ BEFORE USE
THE SYNAPSE DESKTOP CLIENT IS EXPERIMENTAL BETA SOFTWARE
This software is in early development and may contain bugs, security vulnerabilities, or cause system instability. By proceeding, you acknowledge that:
- Data loss may occur - Always backup important data before use
- Features may not work as expected or change without notice
- System crashes or freezes are possible
- Security risks may exist due to unfinished code
- No warranty or support is provided for this beta version
Use at your own risk. This software is intended for testing and feedback purposes only.
By continuing to use this software, you accept full responsibility for any consequences.
What to Expect
As our first beta release, you might encounter:
- Rough edges in the user interface
- Limited error handling for edge cases
- Performance issues with large files or datasets
- Missing features that will be added in future releases
Your Feedback Matters
We're building this tool with and for the Synapse community. Your experience, bug reports, and suggestions are invaluable in helping us create something truly useful.
Please share your feedback with us:
- 🐛 Bug reports and technical issues
- 💡 Feature requests and suggestions
- 📝 General feedback about your experience
- 🤔 Questions about usage or functionality
Submit feedback here: https://sagebionetworks.jira.com/servicedesk/customer/portal/5/group/7/create/144
Getting Started
- Download the appropriate installer for your operating system
- Install the application following the setup wizard
- Launch the Synapse Desktop Client
- Log in with your Synapse access token or your synapseConfig file with profile based authentication.
- Start uploading or downloading your data
System Requirements
- Windows: Windows 10 or later
- macOS: macOS 14 or later
Install instructions:
v4.9.0
Highlights
- Multi-Profile support is now available when using the
.synapseConfig
file. Check out the updated Authentication instructions that covers how to take advantage of this feature. - Introduced streamlined functionality for managing JSON schemas and access control lists (ACLs)
- Enhanced OpenTelemetry tracing for file transfers and MD5 calculations
- Added support for Virtual Tables
Features
- [SYNPY-893] Added support for multiple authentication profiles (#1194)
- [SYNPY-1580] Implemented
VirtualTable
OOP model (#1195) - [SYNPY-1599] Added JSON schema mixin class for binding, validating, and unbinding schemas (#1205)
- [SYNPY-1607] Enabled string-based conversion for
ColumnType
andFacetType
(#1210) - [SYNPY-1604] Introduced
dry_run
flag andlist_acl
method for ACL management (#1207) - [SYNPY-1244] Implemented recursive ACL deletion and permission inheritance detection (#1200, #1202)
Bug Fixes
- [SYNPY-1581] Removed exception logging and raising in async methods (#1203)
Tech Debt
- [SYNPY-1295] Trimmed down integration tests and combined similar logic (#1199)
- [SYNPY-1606] Added OpenTelemetry metrics for file uploads, downloads, and MD5 calculations (#1204)
- [SYNPY-1618] Added scripts for cleaning up test resources in Synapse (#1209)
- [SYNPY-1599] Patched JSON schema code and improved examples (#1211)
New Contributors
Full Changelog: v4.8.0...v4.9.0
v4.9.0-rc
Highlights
- Multi-Profile support is now available when using the
.synapseConfig
file. Check out the updated Authentication instructions that covers how to take advantage of this feature. - Introduced streamlined functionality for managing JSON schemas and access control lists (ACLs)
- Enhanced OpenTelemetry tracing for file transfers and MD5 calculations
- Added support for Virtual Tables
Features
- [SYNPY-893] Added support for multiple authentication profiles (#1194)
- [SYNPY-1580] Implemented
VirtualTable
OOP model (#1195) - [SYNPY-1599] Added JSON schema mixin class for binding, validating, and unbinding schemas (#1205)
- [SYNPY-1607] Enabled string-based conversion for
ColumnType
andFacetType
(#1210) - [SYNPY-1604] Introduced
dry_run
flag andlist_acl
method for ACL management (#1207) - [SYNPY-1244] Implemented recursive ACL deletion and permission inheritance detection (#1200, #1202)
Bug Fixes
- [SYNPY-1581] Removed exception logging and raising in async methods (#1203)
Tech Debt
- [SYNPY-1295] Trimmed down integration tests and combined similar logic (#1199)
- [SYNPY-1606] Added OpenTelemetry metrics for file uploads, downloads, and MD5 calculations (#1204)
- [SYNPY-1618] Added scripts for cleaning up test resources in Synapse (#1209)
- [SYNPY-1599] Patched JSON schema code and improved examples (#1211)
New Contributors
Full Changelog: v4.8.0...v4.9.0-rc
v4.8.0
Highlights
- Introduced new object-oriented models for working with Synapse Datasets, DatasetCollections, EntityViews, MaterializedViews, and SubmissionViews. This includes tutorials for each of these models.
- Improved handling of progress bars, logging, and error messages
- Added support for Python 3.13
- Patch CWE-444
Features
- [SYNPY-1571] Adds
Dataset
Model & Introduces Composition Model forTable
/View
-like Classes by @BWMac in #1175 - [SYNPY-1575] Introduce EntityView model by @BryanFauble in #1181
- [SYNPY-1579] Introduce the materialized view by @BryanFauble in #1190
- [SYNPY-1578]
DatasetCollection
OOP Model by @BWMac in #1189 - [SYNPY-1577] Submission View by @BryanFauble in #1192
Bug Fixes
- [SYNPY-1547]
parentWikiId=""
Bug by @BWMac in #1165 - [SYNPY-1553] Update to support python 3.13 by @BryanFauble in #1171
- [SYNPY-1575] Correct regular expression for invalid column name by @BryanFauble in #1187
- [SYNPY-1584] Add a buffer.tell when truncating bytes during dataframe upload and drop writing header to csv by @BryanFauble in #1193
Tech Debt
- [SYNPY-1488] Patch nested tqdm progress bars and messages to logger by @BryanFauble in #1177
- [SYNPY-1551] Tables refactor by @BryanFauble in #1151
- [SYNPY-1497] refactored version check to use Pypi for version info by @andrewelamb in #1191
Other
- Update the docstring for setPermissions to be clearer by @BryanFauble in #1164
- Update Dockerfile - Fixes
pandas
installation by @BWMac in #1169 - [SYNPY-1570, SYNPY-1555] Support passing
user_agent
to the Synapse class constructor, and HTTPX Library usage by @BryanFauble in #1170 - Prevent concurrent builds per branch by @BryanFauble in #1178
- [DPE-1253] Add PR template for GH Pull requests by @BryanFauble in #1182
- [SYNPY-1542] Upgrade readthedocs os, python version, and search ranking by @BryanFauble in #1184
- [SYNPY-1553] Removes Blank Auth Header by @BWMac in #1185
- Include a default timeout for HTTP requests library to 70 seconds by @BryanFauble in #1188
- Add table and file versioning tutorial updates by @rxu17 in #1172
- Updates dataset tutorial to fix typo by @BWMac in #1186
- Create SECURITY.md by @thomasyu888 in #1166
New Contributors
- @andrewelamb made their first contribution in #1191
Full Changelog: v4.7.0...v4.8.0-rc
v4.7.0
Highlights
- Added functionality for interacting with Synapse Agents:
- The new
Agent
OOP model allows you to chat with the baseline Synapse Agent,
register and chat with custom Synapse Agents, manage multiple chat sessions and more. - See the
Agent
documentation for more details and example code to get started.
- The new
What's Changed
- [SYNPY-1544] Synapse Agent OOP Model by @BWMac in #1152
- [SYNPY-1544] Fixes docstring by @BWMac in #1155
- Removes example setting annotations with Agent class by @BWMac in #1156
- [SYNPY-1557] Sync a Linked Folder Bug by @BWMac in #1157
- [SYNPY-1544] Return the AgentPrompt when calling the prompt function by @BryanFauble in #1158
Full Changelog: v4.6.1...v4.7.0
v4.6.1
What's Changed
- Update misaligned script by @thomasyu888 in #1144
- [SYNPY-1423] update mkdocstrings dependency for 1.8.0 by @danlu1 in #1145
- Add procps to Dockerfile to enable use of container in Nextflow by @adamjtaylor in #1146
- [SYNPY-1548] Swap to a FIFO queue by @BryanFauble in #1147
New Contributors
- @adamjtaylor made their first contribution in #1146
Full Changelog: v4.6.0...v4.6.1-rc
v4.6.0
Highlights
- Patching an issue present in 4.5.1 that broke downloads from google bucket files.
- Support for python 3.12
- Drop support for python 3.8
What's Changed
- [SYNPY-1521] Fixes
asDataFrame
kwarg
Collision Issue by @BWMac in #1132 - [SYNPY-1520] Support python 3.12 by @BryanFauble in #1133
- [SYNPY-1517] Deprecate Python 3.8 Support by @BWMac in #1134
- [SYNPY-1524] Fixes
ghcr-build-and-push-on-develop
andghcr-build-and-push-on-release
Workflows by @BWMac in #1136 - [SYNPY-1524] Updates
Dockerfile
by @BWMac in #1137 - [SYNPY-1525] Verify expiration param in url by @BryanFauble in #1139
- [SYNPY-1513] Validate input submission ID in
getSubmission(...)
by @jaymedina in #1135 - [SYNPY-1522] Add note on lost shared libraries to install instructions for
conda
by @jaymedina in #1140
Full Changelog: v4.5.1...v4.6.0-rc
v4.5.1
4.5.1 (2024-09-19)
Highlights
- Telemetry auto instrumentation:
- By employing the usage of the opentelemetry-python-contrib
we are able to take advantage of the support for auto instrumenting several
libraries in use by this client. This telemetry data is paramount for exceptional
observability. Check out the readme for a quickstart.
- By employing the usage of the opentelemetry-python-contrib
owner_id
(Or the ID of the logged in profile) is available on logged in Synapse instance viasyn.credentials.owner_id
What's Changed
- [FDS-2386] Add owner id to the credentials to be used later on by @BryanFauble in #1130
- [FDS-2386] Global client caching, Telemetry auto instruementation by @BryanFauble in #1129
Full Changelog: v4.5.0...v4.5.1-rc
v4.5.0
Highlights
- Improved handling of pre-authorized requests:
- During long running asynchronous download operations (i.e. syncing a folder with many files),
some pre-authorized URLs were expiring before they were used to download the file. This
change will now check the expiration datetime of the URL before using it.
If the URL is expired it will be refreshed.
- During long running asynchronous download operations (i.e. syncing a folder with many files),
- Added support for
pandas.read_csv
keyword arguments:- Added support for all
pandas.read_csv
keyword arguments to theasDataFrame
method of theCsvFileTable
class. - This enables custom handling of missing values and default values when reading a Synapse table to a pandas DataFrame. See the pandas documentation for a full list of available keyword arguments.
- Added support for all
What's Changed
- [SYNPY-1514] Handle Expired Pre-Signed URLs by @BWMac in #1126
- [SYNPY-1509] Updates
NA
handling forCSVFileTable.asDataFrame
by @BWMac in #1127 - [FDS-2373] Update retry delay, add some otel traces, add retry to url creation by @BryanFauble in #1128
Full Changelog: v4.4.1...v4.5.0
v4.4.1
What's Changed
- Update file tutorial with missing line by @rxu17 in #1123
- [SYNPY-1436] avoid duplicate user profile call during login by @danlu1 in #1124
- [SYNPY-1511] Correct missing synapse client propogation and caching by @BryanFauble in #1125
New Contributors
Full Changelog: v4.4.0...v4.4.1-rc