=================
Use-case examples
=================
In the code's repository you can find examples of use cases for FirecREST where `PyFirecREST `__ is used as backend for web user interfaces and workflow automation tools that interact with remote high performance computing (HPC) facilities.
CI/CD pipeline
^^^^^^^^^^^^^^
In this `example `__ we create a GitHub CI/CD pipeline that will run in a HPC system through FirecREST.
Web User Interfaces
^^^^^^^^^^^^^^^^^^^
We show examples of Web Graphic User Interface applications in Python that interact with HCP services using FirecREST.
Two workflows are used for the authentication with an identity provider: `the Client Credential workflow `__ and `the Authorization Code workflow `__.
FirecREST Operators for Airflow
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this `example `__ we define an Airflow graph combining small tasks which run localy in a laptop with compute-intensive tasks that must run on an HPC system. The idea is to add in Airflow the support for executing the compute-intensive tasks in a supercomputer via FirecREST. For that we are going to write custom Airflow operators that will use FirecREST to access the HPC system.
JupyterHub with FirecRESTSpawner
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is a `tutorial `__ on how to run `JupyterHub `__ with `FirecRESTSpawner `__ using the `Docker demo of FirecREST `__.
FirecRESTSpawner is a tool for launching Jupyter Notebook servers from JupyterHub on HPC clusters through FirecREST.
It can be deployed on Kubernetes as part of JupyterHub and configured to target different systems.
In this tutorial, we will set up a simplified environment on a local machine, including a `Docker Compose `__ deployment of FirecREST, a single-node Slurm cluster and a `Keycloak `__ server which will be used as identity provider for the authentication. Then we will install JupyterHub locally and configure it to launch notebooks on the Slurm cluster.