Skip to main content

About the Dendro API

The Dendro API is implemented using Python with FastAPI, deployed as serverless functions on Vercel. It is divided into four sections: GUI, Compute Resource, Processor, and Client.

Here is the ReDoc-generated documentation and the Swagger UI-generated documentation.

GUI

The GUI API receives requests from the web interface. Operations include

  • Getting and creating projects
  • Getting and creating project files
  • Getting and creating project jobs
  • Registering and managing compute resources, including configuring apps.
  • Getting pub/sub information
  • Authenticating via GitHub

All write operations and some read operations require authentication via GitHub.

Compute Resource

The compute resource API receives requests from compute resources. Operations include

  • Getting the list of apps configured on the web interface
  • Getting pub/sub information
  • Getting a list of unfinished jobs for the compute resource, including their private keys
  • Setting the compute resource spec (on startup of the compute resource)

All operations require authentication via signatures created using the secret compute resource private key, which is associated with the public compute resource ID.

Processor

The processor API receives requests from processing jobs. Operations include

  • Getting detailed information about a processing job
  • Getting the status of a processing job (to see if it has been canceled)
  • Setting the status of a processing job (running, completed, failed, ...)
  • Getting presigned upload URLs for uploading outputs and console logs

All operations are authenticated using the job private key

Client

The client API receives requests from Python clients. Operations include

  • Getting the files and jobs associated with a project

At this time, no authentication is required.