A Appendix

A.1 Javascript SDK documentation

The Javascript SDK documentation (generated with jsdoc) is available at: https://decoder.ow2.io/pkm-api/public/sdk/index.html

A.2 OpenAPI generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Specification. Directory openapi_gen contains some generation scripts which leverages on this tool to fully generate server (not only server stubs), SDK for the clients written in Javascript and REST API documentation. These scripts take a single argument which is a configuration file:

The configuration file contains configuration parameter value assignments (PARAM=value).

The configuration parameters are the following:

The paths are all relative to directory containing the configuration file. The actual implementation of each API function shall be in sub-directory services.

Figure 7 below shows the OpenAPI generation flow:

Figure 7: OpenAPI generation flow

The inputs (with the directory structure) are in green on the left side of the figure. The inputs are the OpenAPI specification file (openapi.yaml), the implementation of POST/PUT/GET/DELETE functions for the resources (“API functions”), and the configuration file for the generation flow (openapi_gen.conf). On the middle of the figure, the processing steps are in blue, and consist in running the OpenAPI generator tool, then fixing the generated server replacing stubs with the actual API functions and adding some functionalities such as HTTPS, gzip, and download supports. The results of the generation flow are in orange on the right side of the figure. The results are the SDK for javascript clients, the REST API documentation (written in HTML), and the full server source code.

The services that currently use OpenAPI Generator are the followings:

A.3 Integration & non-regression testing

There is a set of benchmarks for the DECODER project. These benchmarks are tests mostly intended for integration testing and non-regression testing of the DECODER Project tool-chain. There are not only basic tests but also more complex tests with software from the real world and DECODER test cases, such as OpenCV and Linux driver. They have been used extensively to ensure that the server is performing its missions correctly and scaling up in realistic scenarios.

These benchmarks are available at https://gitlab.ow2.org/decoder/integration-tests.

Each test has a bash script (run.sh) to run the test and a dataset (in directory data).

The currently available tests are:

The tests use the popular cURL program to communicate with the PKM and tools through their REST APIs.