Roundtable is the SQuaRE application and bot deployment platform, hosted on Kubernetes with Argo CD. Safir is a Python package that lets you develop Roundtable bots, based on the FastAPI asyncio web framework.
Install from PyPI:
pip install safir
The best way to create a new Safir-based Roundtable bot is with the fastapi_safir_app template.
Read more about Safir at https://safir.lsst.io
- Set up an
httpx.AsyncClient
as part of the application start-up and shutdown lifecycle. - Set up structlog-based logging.
- Middleware for attaching request context to the logger to include a request UUID, method, and route in all log messages.
- Process
X-Forwarded-*
headers to determine the source IP and related information of the request. - Gather and structure standard metadata about your application.
The best way to start contributing to Safir is by cloning this repository creating a virtual environment, and running the init command:
git clone https://github.com/lsst-sqre/safir.git
cd safir
make init
For details, see https://safir.lsst.io/dev/development.html.