Files
geointel/docs/JOB_LIFECYCLE.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

957 B

Job Lifecycle

Long-running work must run through jobs.

Job statuses

queued
running
succeeded
failed
cancelled

Job table fields

  • id
  • job_type
  • status
  • project_id
  • dataset_id nullable
  • analysis_run_id nullable
  • progress_percent nullable
  • message nullable
  • error_code nullable
  • error_detail nullable
  • created_at
  • started_at
  • finished_at

Job types

  • dataset_metadata_extract
  • raster_clip
  • raster_tile
  • vector_import
  • vector_clip
  • grb_fetch
  • object_detection
  • segmentation
  • qaqc_compare
  • export_generate

Job events

Each status transition should create a domain event.

API behavior

Starting a long-running operation returns immediately with:

{
  "data": {
    "job_id": "...",
    "status": "queued"
  },
  "error": null,
  "meta": {}
}

The frontend polls a job endpoint until success or failure.

Failure handling

Jobs must fail loudly and clearly. Do not silently skip processing.