certtools / intelmq-api

FastAPI-based API for the IntelMQ project
https://docs.intelmq.org/latest/user/api/
1 stars 7 forks source link
fastapi intelmq

.. SPDX-FileCopyrightText: 2020 Birger Schacht SPDX-License-Identifier: AGPL-3.0-or-later

########### intelmq-api ###########

|Tests Status| |Package Status|

.. |Tests Status| image:: https://github.com/certtools/intelmq-api/actions/workflows/python-unittests.yml/badge.svg :target: https://github.com/certtools/intelmq-api/actions/workflows/python-unittests.yml

.. |Package Status| image:: https://github.com/certtools/intelmq-api/actions/workflows/debian-package.yml/badge.svg :target: https://github.com/certtools/intelmq-api/actions/workflows/debian-package.yml

intelmq-api is a FastAPI <https://fastapi.tiangolo.com/> based API for the intelmq <https://github.com/certtools/intelmq/> project.

Extensive documentation regarding the installation, configuration and usage of the intelmq-api can be found in the intelmq documentation <https://docs.intelmq.org/latest/user/api/>_.


Development usage


You could create a preferred virtual environment, and then install the package using:

.. code-block:: bash

pip install -e .

For development purposes, you can run the API using the scripts/run_dev.sh script. It serves the API on the local 8000 port and watches for file changes, with the automated reloading on change.

The interactive documentation is served on the /docs endpoint.

To set the API configuration, please export the INTELMQ_API_CONFIG environment variable with path to the JSON config file in the shell you want to use. For the config reference, please check the intelmq_api/config.py and the example from contrib/api-config.json.

If you configured the session store, you will need to authorize every request. The /v1/login returns the authorization token. You can use the following command to register the user:

.. code-block:: bash

./scripts/intelmq-api-adduser --user UserName


Security note


Please be careful when deploying the API. At the current stage, it is not designed to run on publicly exposed endpoints without additional pre-cautions.


Type checking


The code can be typechecked with mypy. To run the type checker, use:

.. code-block:: bash

mypy intelmq_api/