Flux RESTFul API¶
Welcome to the Flux RESTFul API!
This is a small Flux Python API (using FastAPI) that can be containerized alongside Flux, and provide an easy means to interact with Flux via the API. With Flux RESTful we can:
provide simple endpoints to submit jobs, list jobs, or get job status
eventually support subscribing to events with the user interface job table
OAuth2 flow with a user account and secret to retrieve tokens
There are three potential use cases:
No authentication: “I like to live dangerously.”
Single-user authentication: “Use the default single account created by the server”
Multi-user authentication: “Add one or more users in addition to the superuser.”
The authentication serves as a light wrapper to submitting jobs to Flux, and there is not much more than that. The assumption for a “MiniCluster” use case is that one or more users own an entire cluster and can submit jobs to using the [Flux Operator](https://github.com/flux-framework/flux-operator). This means that the Flux Operator creates and authenticates the server on the fly, alongside a Flux broker. In the case of deploying alongside a more production level Flux install, you likely want to expose the user interface for cluster users. We will be adding back a PAM authentication flow to go alongside with this, likely having users on the host match to server users. Note that I (@vsoch) have not thought deeply about this use case yet, so please [ping me](https://github.com/flux-framework/flux-restful-api/issues) if you have ideas.
To get started, check out the links below! Would you like to request a feature or contribute? Open an issue.