Ingest the World

A geospatial data platform where the database decides who sees what.

Python · FastAPI · PostgreSQL/PostGIS · React · TypeScript · Terraform · Azure · Source on GitHub

The problem

Teams that work with geospatial data receive files of every shape: a few bytes of sensor readings, multi-gigabyte rasters and point clouds, 3D models too big to open casually. Each one has to land in the right store, be described well enough to find again, and be visible only to people cleared to see it, on commercial Azure and on Azure Government alike.

What I built

The ingest pipeline, from a signed upload through the queue and worker to the catalog and the search API.

A client asks for an upload and gets a signed URL that limits what it may write. When the file lands, an event goes on a queue. A worker scans it, works out what kind of file it is, reads only as much of its header as it needs to extract metadata, promotes it to raw storage and catalogs it as a STAC item in Postgres with PostGIS. A FastAPI service serves search and item reads to a React app that signs in with OIDC.

Key decisions

What I’d do next

← All projects