Show deployment details on deployments so we know what codebase each instance reflects
Context
We have a few Ketida instances and are doing regular updates to the Ketida codebases in terms of server and client versions. There is no way to know for a particular instance what version of server and client it's using. That information is important so we can debug issues on a particular deployment and know the status of our code.
Proposal
Add a very brief about page to Ketida instances, that includes version numbers of server and client.
Design
Add an 'About this site' button to the dropdown that is available under the user avatar.
The About page includes the following:
Ketida is built by the Coko development team. This version of Ketida is running the following codebases:
Ketida server: v[version number here]
[Name of client repo]: v[version number here]The following microservices are in use:
- list of microservices and their health check status
- list of microservices and their health check status
- list of microservices and their health check status
For more information on releases and ongoing development, as well as Ketida's user guide, see the Ketida website.
Implementation (if applicable)
Server
- create a new folder under
https://gitlab.coko.foundation/ketida/server/-/tree/main/api/graphql
namedsystemInfo
- create the appropriate
graphql
definitions e.g. schema, resolvers, etc` - create the corresponding controller which will holder all the required functions that will be used in the above resolvers
- the version of the server should be read from the
package.json
'sversion
attribute - additional info that should be included should be the
health
status of the microservices used by the server. That status should be fetched by calling each microservice's healthcheck endpoint e.g.<microservice_url>/healthcheck
Client
- use
webpack
and inject to client's env the version number frompackage.json
e.g. https://gitlab.coko.foundation/ketida/vanilla-client/-/blob/main/webpack/webpack.config.js#L95 and https://gitlab.coko.foundation/ketida/vanilla-client/-/blob/main/webpack/plugins.js#L37 - create an new Page which will present both the client's version as well as the information retrieved from the server's systemInfo query
- create the necessary query definitions, connected page and UI components under https://gitlab.coko.foundation/ketida/vanilla-client/-/tree/main/app
- define the new route in https://gitlab.coko.foundation/ketida/vanilla-client/-/blob/main/app/routes.js
- inject the link for that page as presented in the screenshot above https://gitlab.coko.foundation/ketida/vanilla-client/-/blob/main/app/components/navigation/src/Navigation.js#L75