Files
geointel/docs
JensandClaude Opus 5 16dedeb670 claim analysis jobs atomically and keep acquisition on its official host
Two defects of the same kind: work that is supposed to be bounded is not.

The analysis worker selected queued jobs and then set them to running in a
second statement. A restarted process overlapping the previous one, or a second
replica, could both select the same row and both start tiled GPU inference on
it — duplicate analysis runs and double the GPU load. The AOI worker beside it
already claims with FOR UPDATE SKIP LOCKED; this uses a conditional update,
which is the same guarantee in one statement. run_once now reports jobs it
actually claimed rather than jobs it looked at.

urlopen follows redirects, so although every acquisition URL is built from
settings and cannot be steered by a request payload, a misconfigured or
compromised upstream could send the runtime to the loopback interface, to
another container on the compose network, or to a cloud metadata endpoint — and
the bytes would then be persisted under an official provenance. That is exactly
the substitution the product forbids. All eight fetch sites now open through a
guard that refuses private, loopback and link-local destinations (resolving the
host first, so a DNS name cannot hide one) and refuses a redirect that leaves
the configured origin or downgrades from HTTPS.

The guard is proven by calling the services' own fetch paths, not by grepping
for the call: every existing acquisition test injects an opener, which bypasses
it by design.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 15:59:01 +02:00
..
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-07-18 08:33:40 +02:00
2026-06-16 23:36:32 +02:00
2026-06-16 23:36:32 +02:00
2026-08-21 22:35:17 +02:00
2026-06-16 23:36:32 +02:00

GeoIntel Docs Index

Start with these active release controls:

  • 00-start/START_HERE.md
  • RC_SCOPE_FREEZE_BELGIUM_NORTH_SEA.md
  • RC_ROADMAP_BELGIUM_NORTH_SEA.md
  • RELEASE_RUNBOOK.md
  • KNOWN_LIMITATIONS.md
  • DEFINITION_OF_DONE.md

The milestone and sprint documents below are retained as historical design and implementation evidence. TODO.md is an implementation archive, not the active release board.

Product foundation

  • PRODUCT_VISION.md
  • PRODUCT_BLUEPRINT.md
  • SPECIFICATION_FREEZE_M0.md
  • V1_SCOPE_FREEZE.md
  • M0_HANDOFF_SUMMARY.md

Data and processing

  • DATASET_STRATEGY.md
  • DATA_CATALOG.md
  • DATA_SPECIFICATION.md
  • DATA_SOURCES.md
  • RASTER_OPERATIONS_SPEC.md
  • VECTOR_OPERATIONS_SPEC.md
  • DETECTION_PIPELINE_SPEC.md
  • SEGMENTATION_PIPELINE_SPEC.md
  • CHANGE_DETECTION_SPEC.md
  • ANALYSIS_SPECIFICATIONS.md
  • QA_QC_SPECIFICATION.md
  • FIXTURE_STRATEGY.md

Architecture

  • ARCHITECTURE.md
  • SERVICE_ARCHITECTURE.md
  • DATABASE_SCHEMA.md
  • API_SPECIFICATION.md
  • STORAGE_ARCHITECTURE.md
  • REPOSITORY_CONVENTIONS.md

UI and modules

  • MODULES.md
  • UI_UX_SPEC.md
  • UI_PAGE_SPECIFICATIONS.md
  • COMPONENT_BREAKDOWN.md

Historical execution

  • CODEX_MASTER_PROMPT.md
  • CODEX_EXECUTION_PLAN.md
  • CODEX_BUILD_PLAN.md
  • CODEX_EXECUTION_LOG.md
  • ACCEPTANCE_CRITERIA.md
  • TODO.md (historical implementation archive)
  • IMPLEMENTATION_BACKLOG.md
  • DEVELOPMENT_RULES.md
  • AGENTS.md