]> git.koha-community.org Git - koha.git/commit
Bug 23653: use local copy of swagger v2 schema
authorDavid Cook <dcook@prosentient.com.au>
Wed, 1 Jul 2020 02:26:01 +0000 (02:26 +0000)
committerVictor Grousset/tuxayo <victor@tuxayo.net>
Sun, 20 Jun 2021 22:51:05 +0000 (00:51 +0200)
commitfa6afdd4e30b170432d266c84d746ca18491e9d4
treebf6c27cf4d745297c654bf1a906a4842b8289f2d
parentfa64f9b2969bb97e72efcd6fa8a557bce99446c9
Bug 23653: use local copy of swagger v2 schema

By default, JSON::Validator::OpenAPI tries to fetch the
swagger v2 schema from http://swagger.io/v2/schema.json.

If you've installed from CPAN, JSON::Validator::OpenAPI will
come with a cached copy, so it won't try to fetch it over HTTP.

However, if you've installed from libjson-validator-perl
from Debian/Ubuntu, the Debian package excludes the cached copy,
so JSON::Validator::OpenAPI tries to fetch it over HTTP.

Unfortunately, today and other days in the past, the file at
http://swagger.io/v2/schema.json has been unavailable, and this causes
Koha to crash in a perpetual loop.

This patch includes a copy of the swagger v2 schema, and it loads
it locally rather than fetching over HTTP.

The changes to Koha/REST/Plugin/PluginRoutes.pm are not required,
since the validator isn't currently called there, but I've added
a patch to future proof it.

To Test:
0a) Remove /usr/share/perl5/JSON/Validator/cache/36d1bd12eeed51e86c8695bd8876a9df
if it exists
0b) Block external access to http://swagger.io/v2/schema.json or
test during an outage when it's unavailable
0c) Do not apply patch
1) koha-plack --restart kohadev
2) Note that it crashes in a loop and is unavailable in web browser
3) Apply patch
4) koha-plack --restart kohadev
5) Note that Koha comes up and there are no errors in the Plack logs

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit e0a4bad3fccb67b9459b0e245d4f9647c2b3b428)
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Koha/REST/Plugin/PluginRoutes.pm
Koha/REST/V1.pm
api/swagger-v2-schema.json [new file with mode: 0644]