28 lines
980 B
Markdown
28 lines
980 B
Markdown
# 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.
|