Database

Is there a reliable way to link the task ID to the backend database files?

I have ODM working in AWS, and the authentication token keeps expiring before the download can finish.
I can use Mountain Duck to access the files in ODM storage, but the system doesn’t make any sense without going through each file to check the report for which it is

Yes – in WebODM the folder names are the IDs. Every task lives in

app/media/project/<project id>/task/<task id>/

and its results are in the assets/ subfolder: odm_orthophoto/odm_orthophoto.tif, odm_dem/dsm.tif / dtm.tif, odm_georeferencing/odm_georeferenced_model.laz, odm_texturing/, odm_report/report.pdf, and all.zip once it has been created. The <task id> is the same UUID you see in the browser when you open a task (/map/project/<project id>/task/<task id>/).

To get a name → folder list without opening reports:

  • API: GET /api/projects/ (id, name), then GET /api/projects/<project id>/tasks/ (id, name, created_at, status)
  • Database (PostgreSQL, database webodm_dev by default):
SELECT p.id AS project_id, p.name AS project, t.id AS task_id, t.name AS task, t.created_at
FROM app_task t JOIN app_project p ON p.id = t.project_id
ORDER BY t.created_at;

(in the Docker setup e.g. docker exec -it db psql -U postgres webodm_dev)

About the token: WebODM’s API token (JWT) is valid for 6 hours and can be renewed with POST /api/token-auth/refresh/ (body token=<old token>). It is checked when a request starts, so a download that has already started isn’t cut off by the token expiring. If yours stops, it’s more likely a timeout in front of WebODM (e.g. an AWS load balancer idle timeout or a proxy limit). Since you already have access to the storage, the simplest route for big results is to copy assets/all.zip or the single files straight from the task folder.