9.0.0
Backwards-incompatible changes
- Rewrite the Safir UWS support to use Pydantic models for job parameters. Services built on the Safir UWS library will need to change all job creation dependencies to return Pydantic models.
- UWS clients must now pass an additional
job_summary_type
argument toUWSAppSettings.build_uws_config
and implementto_xml_model
in their implementation ofParametersModel
, returning a subclass of the vo-modelsParameters
class. - Use the Wobbly service rather than a direct database connection to store UWS job information. Services built on the Safir UWS library must now configure a Wobbly URL and will switch to Wobbly's storage instead of their own when updated to this release of Safir.
- Case-insensitivity of form
POST
parameters to UWS routes is now handled by middleware, and theuws_post_params_dependency
function has been removed. Input parameter dependencies for UWS applications can now assume that all parameter keys will be in lowercase. - Support an execution duration of 0 in the Safir UWS library, mapping it to no limit on the execution duration. Note that this will not be allowed by the default configuration and must be explicitly allowed by an execution duration validation hook.
- Convert all models returned by the Safir UWS library to Pydantic. Services built on the Safir UWS library will have to change the types of validator functions for destruction time and execution duration.
- Safir no longer provides the
safir.uws.ErrorCode
enum or the exceptionsafir.uws.MultiValuedParameterError
. These values were specific to a SODA service, and different IVOA UWS services use different error codes. The Safir UWS library now takes error code as a string, and each application should define its own set of error codes in accordance with the IVOA standard it is implementing.
New features
- Add unit testing support for application metrics. Tests can define a mock application metrics event handler and inspect it after running application code to see what events would have been published.
Bug fixes
- Append a colon after the error code when reporting UWS errors.
Other changes
- Render all UWS XML output except for error VOTables using vo-models rather than hand-written XML templates.
What's Changed
- DM-47769: Fix pagination example by @rra in #344
- DM-47769: Add documentation of CaseInsensitiveFormMiddleware by @rra in #345
- DM-47928: Use case-insensitive form middleware for UWS support by @rra in #346
- DM-47790: Switch to vo-models for nearly all UWS responses by @rra in #347
- DM-47764: App metrics unit testing helpers by @fajpunk in #348
- DM-47986: Convert the UWS library to use the Wobbly backend by @rra in #349
- DM-47986: Prepare 9.0.0 release by @rra in #351
Full Changelog: 8.0.0...9.0.0