Skip to content

Routers

FastAPI router definitions for API endpoints.

Projects Router

projects

add_jobs_batch

add_jobs_batch(
    id: int,
    batch: JobBatchCreate,
    db: Session = Depends(get_db),
)

Add multiple jobs to a project's queue in a single request.

clear_project_queue

clear_project_queue(id: int, db: Session = Depends(get_db))

Clear all pending jobs from a project's queue.

delete_project_job

delete_project_job(
    project_id: int,
    job_id: int,
    db: Session = Depends(get_db),
)

Remove a specific job from a project's queue.

fetch_job

fetch_job(
    id: int,
    db: Session = Depends(get_db),
    available_cpu: int = 0,
    available_accelerators: int = 0,
)

Fetch the next job ready for execution.

Only returns jobs whose dependencies are all COMPLETED. Jobs with failed dependencies are automatically marked as BLOCKED.

PARAMETER DESCRIPTION
id

Project ID.

TYPE: int

available_cpu

Filter jobs by available CPU (0 = no filter).

TYPE: int DEFAULT: 0

available_accelerators

Filter jobs by available accelerators (0 = no filter).

TYPE: int DEFAULT: 0

Tasks Router

tasks

Jobs Router

jobs

add_job

add_job(job: JobCreate, db: Session = Depends(get_db))

Create a new job.

Validates that the project and task exist, and that the dependencies don't create a circular dependency.

get_job_dependencies

get_job_dependencies(
    id: int, db: Session = Depends(get_db)
)

Get the dependency status for a job.

update_job

update_job(
    id: int, job: JobUpdate, db: Session = Depends(get_db)
)

Update a job.

Validates circular dependencies and propagates failure status to dependent jobs.

Clients Router

clients

deactivate_client

deactivate_client(id: str, db: Session = Depends(get_db))

Mark a client as inactive (graceful disconnect).

heartbeat

heartbeat(id: str, db: Session = Depends(get_db))

Update client's last heartbeat timestamp.

register_client

register_client(
    client: ClientRegister, db: Session = Depends(get_db)
)

Register a new client or update an existing one with fresh heartbeat.

update_client

update_client(
    id: str,
    client: ClientUpdate,
    db: Session = Depends(get_db),
)

Update client's resource availability.

Artifacts Router

artifacts