# ADR-004 — Storage Strategy ## Status Accepted for V1. ## Context GeoIntel stores multiple artifact types: uploaded rasters, vector uploads, generated tiles, model outputs, masks, exports, and reports. ## Decision Use local filesystem storage for V1 with a strict directory convention: - `storage/uploads/` for original user uploads, - `storage/originals/` for normalized source copies, - `storage/tiles/` for generated raster tiles, - `storage/masks/` for segmentation masks, - `storage/derived/` for processed artifacts, - `storage/exports/` for GeoJSON/COCO/YOLO exports, - `storage/reports/` for reports, - `storage/models/` for model artifacts. Database rows reference files by relative path and content hash. ## Consequences Simple local development and predictable repo behavior. Future MinIO/S3 migration remains possible because storage calls must go through a service boundary. ## Non-goals No direct random file writes from routes or frontend-specific paths.