Skip to content

Latest commit

 

History

History
83 lines (56 loc) · 3.14 KB

README.md

File metadata and controls

83 lines (56 loc) · 3.14 KB

api.multiqc.info

Code for api.multiqc.info, providing run-time information about available updates.

Introduction

The API is a simple tool to provide a metadata endpoint for MultiQC runs. Currently, there are the following endpoints that are used:

/version

  • Information about the latest available release
    • MultiQC uses this to print a log message advising if the current version is out of date, with information about how to upgrade.
  • [Planned]: Broadcast messages
    • Can be used to announce arbitrary information, such as critical changes.
    • No usage currently anticipated, this is mostly a future-proofing tool.
  • [Planned]: Module-specific warnings
    • Warnings scoped to module and MultiQC version
    • Will allow MultiQC to notify end users via the log if the module that they are running has serious bugs or errors.

/downloads

Logged metrics

MultiQC supplies some information to the API when it requests this endpoint. This is used to gather metrics on MultiQC usage and tailor development efforts.

Currently, it reports:

  • MultiQC version
  • [Planned]: Python version
  • [Planned]: Operating system (linux|osx|windows|unknown)
  • [Planned]: Installation method (pip|conda|docker|unknown)
  • [Planned]: CI environment (GitHub Actions|none)

No identifying information is collected. No IPs are logged, no information about what MultiQC is being used for or where, no sample data or metadata is transferred. All code in both MultiQC and this API is open source and can be inspected.

This version check can be disabled by adding no_version_check: true to your MultiQC config (see docs).

The request uses a very short timeout (2 seconds) and fails silently if MultiQC has no internet connection or an unexpected response is returned.

Production deployment

A docker image is available for the app here:

ghcr.io/multiqc/apimultiqcinfo:latest

Development

Note: These instructions are intended for local development work, not a production deployment.

Create an .env file and replace the xxxs with random strings. Set UVICORN_RELOAD=--reload to enable hot-reloading when you save files.

cp .env.example .env

Then, use docker compose to launch the app:

docker compose up

The API should now be available at http://localhost:8008/

I recommend using something like Postcode (VSCode extension) or httpie or similar.

When you're done, Ctrl+C to exit, then lean up:

docker compose down