# Database

**URL:** <https://community.opendronemap.org/t/database/27020>\
**Category:** ODM\
**Created:** [October 21, 2026, 4:10pm UTC](https://community.opendronemap.org/t/database/27020 "2026-10-21T16:10:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Taredhel](https://community.opendronemap.org/user_avatar/community.opendronemap.org/taredhel/32/17464_2.png) [@Taredhel](https://community.opendronemap.org/u/Taredhel)\
**Post date:** [October 21, 2026, 4:10pm UTC](https://community.opendronemap.org/t/database/27020/1 "2026-10-21T16:10:08Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Maurice.Sobiera](https://community.opendronemap.org/user_avatar/community.opendronemap.org/maurice.sobiera/32/6956_2.png) [@Maurice.Sobiera](https://community.opendronemap.org/u/Maurice.Sobiera)\
**Post date:** [October 21, 2026, 5:28pm UTC](https://community.opendronemap.org/t/database/27020/2 "2026-10-21T17:28:40Z")

</div>

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

```auto
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):

```sql
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.
