Skip to content

v5.0.0

Choose a tag to compare

@nedvedba nedvedba released this 02 Mar 16:45
· 84 commits to staging since this release
78d2493

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