https://github.com/multiqc/api.multiqc.info
Code for basic MultiQC API service, providing run-time information about available updates.
https://github.com/multiqc/api.multiqc.info
api multiqc
Last synced: about 2 months ago
JSON representation
Code for basic MultiQC API service, providing run-time information about available updates.
- Host: GitHub
- URL: https://github.com/multiqc/api.multiqc.info
- Owner: MultiQC
- License: mit
- Created: 2023-04-11T13:51:37.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-18T21:21:21.000Z (7 months ago)
- Last Synced: 2025-01-12T17:44:58.228Z (4 months ago)
- Topics: api, multiqc
- Language: Python
- Homepage: https://api.multiqc.info
- Size: 700 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# api.multiqc.info
Code for [api.multiqc.info](https://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`
- MultiQC package downloads across multiple sources, and, when available, different versions:
- [PyPI](https://pypi.org/project/multiqc) (additionally, split by version)
- [BioConda](https://bioconda.github.io/recipes/multiqc) (additionally, split by version)
- [DockerHub](https://hub.docker.com/r/ewels/multiqc)
- [GitHub clones](https://github.com/ewels/MultiQC/graphs/traffic)
- [BioContainers (AWS mirror)](https://api.us-east-1.gallery.ecr.aws/getRepositoryCatalogData)## 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](https://multiqc.info/docs/getting_started/config/#checks-for-new-versions)).
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 `xxx`s with random strings.
Set `UVICORN_RELOAD=--reload` to enable hot-reloading when you save files.```bash
cp .env.example .env
```Then, use docker compose to launch the app:
```bash
docker compose up
```The API should now be available at
I recommend using something like [Postcode](https://marketplace.visualstudio.com/items?itemName=rohinivsenthil.postcode) (VSCode extension) or [httpie](https://httpie.io/) or similar.
When you're done, Ctrl+C to exit, then lean up:
```bash
docker compose down
```