Closed bgodlin closed 1 year ago
Now we have /version endpoint which returns mw API version:
{
"semver":"0.9.4",
"build_timestamp":"2023-10-04T08:33:16.228670675Z",
"git_pretty":"fe21ef5"
}
I suggest to add all client supported versions for mw, respectively: web, ios, android, so response will be:
{
"web_client_version": "1.2.3",
"android_client_version": "3.4.5",
"ios_client_version": "4.5.6",
"api_version":"0.9.4",
"build_timestamp":"2023-10-04T08:33:16.228670675Z",
"git_pretty":"fe21ef5"
}
The client will check corresponding version and decide should it proceed or force update. Also we should decide do the client must update on patch change. Patch change usually means bug fixing. Another possible solution is to update client minor version on bug fixing. We should come up to some agreement on this example.
The client will check corresponding version and decide should it proceed or force update. Also we should decide do the client must update on patch change. Patch change usually means bug fixing. Another possible solution is to update client minor version on bug fixing. We should come up to some agreement on this example.
Should the application solely verify its object or should it also manage the api_version
object in some way?
The client should check xxx_client_version
only. There is no need to check both api and client version since the client will support the most recent mw api.
Final version, ios_client_version
is set by env:
{
"ios_client_version": "4.5.6",
"api_version":"0.9.4",
"build_timestamp":"2023-10-04T08:33:16.228670675Z",
"git_pretty":"fe21ef5"
}
Problem
Currently, our applications do not check for the latest version, which can lead to compatibility issues with the middleware. It is essential to ensure that applications always fetch the latest version from the middleware to maintain compatibility and provide a seamless user experience
Solution
To address this issue, we need to enforce the SORA Card version update process.
Sub-tasks & Requirements
This involves making changes to both the backend and client applications to ensure they always fetch and use the latest version from the middleware
Backend
Client Applications
/version
endpoint and compare it to the locally stored versionWeb
Mobile
ios_client_version
for iOS andandroid_client_version
for Android).