diff --git a/lib/www/server/spec/openapi.yaml b/lib/www/server/spec/openapi.yaml index 30e6f85..ec79ef6 100644 --- a/lib/www/server/spec/openapi.yaml +++ b/lib/www/server/spec/openapi.yaml @@ -73,6 +73,9 @@ tags: * SeisJSON file containing sequence event data. * PDF file which is a representation of the corresponding SeisJSON. + - + name: misc + description: Miscellaneous endpoints components: securitySchemes: @@ -1025,6 +1028,109 @@ components: "parent_id": null } + SoftwareVersion: + description: Software and component versions + type: object + properties: + name: + description: Server application name + type: string + server: + description: Server application version + type: string + tag: + description: Server application version control tag + type: string + api: + description: Application program interface version + type: string + schema: + description: Database schema version + type: string + db: + description: | + Database components. + *Only shown to users with write access.* + type: object + properties: + version: + description: Database server description + type: string + postgis_version: + description: PostGIS version number + type: string + os: + description: | + Operating system information. See the [`/etc/os-release` file description](https://www.freedesktop.org/software/systemd/man/latest/os-release.html#Options) for information on the specific values. + *Only shown to users with write access.* + type: object + properties: + ID: + description: See https://www.freedesktop.org/software/systemd/man/latest/os-release.html#ID= + type: string + NAME: + description: See https://www.freedesktop.org/software/systemd/man/latest/os-release.html#NAME= + type: string + PRETTY_NAME: + description: See https://www.freedesktop.org/software/systemd/man/latest/os-release.html#PRETTY_NAME= + type: string + VERSION: + description: See https://www.freedesktop.org/software/systemd/man/latest/os-release.html#VERSION= + type: string + VERSION_ID: + description: See https://www.freedesktop.org/software/systemd/man/latest/os-release.html#VERSION_ID= + type: string + compatibility: + description: Version compatibility + type: array + items: + type: object + description: | + Compatibility object. Describes the compatibility requirements of the currently running system. + properties: + component: + description: The component being checked. + type: string + enum: [ "api", "schema" ] + current: + description: Current version number for this component. + type: string + wanted: + description: Wanted version. This uses NodeJS' semantic versioning comparisons. See https://github.com/npm/node-semver#ranges for a description of the syntax. + type: string + example: + { + "name": "dougal-server-web", + "server": "0.0.0", + "tag": "v3-260-g46bb207", + "api": "0.4.0", + "schema": "0.4.5", + "db": { + "version": "PostgreSQL 14.8 on x86_64-suse-linux-gnu, compiled by gcc (SUSE Linux) 13.2.1 20230803 [revision cc279d6c64562f05019e1d12d0d825f9391b5553], 64-bit", + "postgis_version": "3.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1" + }, + "os": { + "NAME": "openSUSE Leap", + "VERSION": "15.4", + "ID": "opensuse-leap", + "VERSION_ID": "15.4", + "PRETTY_NAME": "openSUSE Leap 15.4" + }, + "compatibility": [ + { + "current": "0.4.5", + "wanted": "^0.4.5", + "component": "schema" + }, + { + "current": "0.4.0", + "wanted": "^0.4.0", + "component": "api" + } + ] + } + + security: @@ -2274,6 +2380,19 @@ paths: description: The request does not exist or it has already been fulfilled and cannot therefore be cancelled. + /version: + get: + summary: Get version information + tags: [ "misc" ] + security: null + responses: + "200": + description: Version data + content: + application/json: + schema: + $ref: "#/components/schemas/SoftwareVersion" +