v5.0.0
Summary
This release delivers comprehensive logging improvements with correlation ID support, enhanced Globus integration, repository management enhancements, and critical security updates. The release includes significant infrastructure improvements, dependency updates, and numerous bug fixes that improve system reliability and user experience.
Images
docker pull savannah.ornl.gov/datafed/core:v5.0.0
docker pull savannah.ornl.gov/datafed/web:v5.0.0
docker pull savannah.ornl.gov/datafed/foxx:v5.0.0
docker pull savannah.ornl.gov/datafed/gcs:v5.0.0
docker pull savannah.ornl.gov/datafed/repo:v5.0.0
MAJOR - Breaking Changes
Changes that require user action and may break existing integrations
[DAPS-1835] - refactor: common - Rework protobuf files following proto3 design principles, replace monolithic SDMS.proto/SDMS_Anon.proto/SDMS_Auth.proto with 186 individual proto3 message files and envelope-based message routing
Message type identification now derived at runtime from Envelope field descriptors instead of build-time file-order-dependent indices
Clients and tools linking against DataFed protobuf libraries must be rebuilt
[DAPS-1837] - refactor: common - Update common library to use new proto3 envelope for serialization
All proto2 #include "common/SDMS.pb.h" / SDMS_Auth.pb.h replaced with #include "common/envelope.pb.h"
C++ error codes renamed (e.g. ID_SERVICE_ERROR → SERVICE_ERROR)
[DAPS-1845] - refactor: repo - Repository server refactored to be compatible with proto3 envelope
[DAPS-1848] - refactor: authz - Upgrade Authz module to use new proto3 envelope for serialization
[DAPS-1847] - refactor: python_client - Python client updated to support proto3
Runtime reflection from Envelope replaces build-time pyproto_add_msg_idx.py tool
[DAPS-1850] - refactor: web - Update web server to use proto3 files
Web service uses proto3 JSON camelCase field naming (e.g. api_major → apiMajor, release_year → releaseYear)
Version loading changed from async protobuf enum lookup to synchronous CMake-generated version.js import
[DAPS-1825] - refactor: core, repo, authz, gcs - Upgrade crypto and openssl dependencies
Downstream components linking against DataFed crypto libraries may need compatibility updates
[DAPS-1839] - refactor: ci - Split combined build/retag CI pipeline files into separate job files
Deleted: build_core_image.yml, build_foxx_image.yml, build_gcs_image.yml, build_repo_image.yml, build_ws_image.yml
Added: retag_core_image.yml, retag_foxx_image.yml, retag_gcs_base_image.yml, retag_gcs_image.yml, retag_repo_image.yml, retag_ws_image.yml
Downstream CI configurations referencing old pipeline files must be updated
MINOR - Features & Enhancements
New functionality and improvements that maintain backward compatibility
[DAPS-1774] - test: core, python_client, foxx, web - Add query end-to-end tests
[DAPS-1786] - test: web - Add test for hitting password reset
[DAPS-1522] - refactor: foxx - Comprehensive logging improvements across all routers
Authz Router (#1788)
Data Router (#1789)
Group Router (#1795)
Note Router (#1796)
Metrics Router (#1797)
Topic Router (#1801)
Config Router (#1813)
Admin Router (#1814)
ACL Router (#1817)
Collection Router (#1818)
Query Router (#1820)
Schema Router (#1821)
Proj Router (#1822)
Repo Router (#1823)
Router Logging Cleanup (#1838)
PATCH - Bug Fixes, Technical Debt & Improvements
Bug fixes, refactoring, documentation, and other improvements
[DAPS-1862] - fix: core - Fix record allocation change failure
[DAPS-1872] - fix: core, web, foxx - Fix tests running until timeout, proto3 compatibility bugs, log bugs, removed proj search
[DAPS-1824] - fix: gcs, web - Fix mapped collection consent flow
[DAPS-1839] - fix: ci - CI image retag triggered where a build is needed
[DAPS-1833] - fix: ci - End to end tests failing in CI
[DAPS-1805] - refactor: foxx - Refactor user tokens expiring route
[DAPS-1808] - fix: foxx - User router logging fix
[DAPS-1803] - refactor: foxx - Fix user update logs leaking sensitive information
[DAPS-1777] - fix: foxx - Fix user_router regression in missing response
[DAPS-1775] - fix: core, foxx - Add missing {}, foxx query_router add params object schema to routes
[DAPS-1277] - fix: common, core - PROXY_BASIC_ZMQ and PROXY_CUSTOM correctly defined
[DAPS-1790] - fix: common, core, repo - Fix zmq assertion failure during EXCEPT call due to calling zmq_msg with invalid state after closing it
[DAPS-1791] - fix: python_client - Fix requirements.txt being moved to a folder named requirements.txt during cmake configure script
[DAPS-1861] - fix: web - Prevent defaults being set to undefined, and interpret numbers and enums as strings
[DAPS-1868] - fix: web - Version numbers from proto3 messages follow camelCase
[DAPS-1877] - fix: web - Fix user router /update
Contributors
Co-authored-by: Joshua S Brown joshbro42867@yahoo.com
Co-authored-by: Blake Nedved nedvedba@ornl.gov
Co-authored-by: Blake Nedved blakeanedved@gmail.com
Co-authored-by: nedvedba 145805866+nedvedba@users.noreply.github.com
Co-authored-by: Austin Hampton amh107@latech.edu
Co-authored-by: Austin Hampton 44103380+megatnt1122@users.noreply.github.com
Full Changelog: v4.0.0...v5.0.0