Files
geointel/docs/SERVICE_IO_CONTRACTS.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

48 lines
1.8 KiB
Markdown

# Backend Service IO Contracts
## ProjectService
`create_project(input: ProjectCreate) -> ProjectRead`
`list_projects() -> list[ProjectRead]`
`get_project(project_id: str) -> ProjectRead`
## AreaService
`create_area(project_id: str, input: AreaCreate) -> AreaRead`
`list_areas(project_id: str) -> FeatureCollection`
`validate_geometry(geojson: dict) -> GeometryValidationResult`
## DatasetService
`register_upload(project_id: str, file) -> DatasetRead`
`extract_metadata(dataset_id: str) -> DatasetMetadataResult`
`list_datasets(project_id: str) -> list[DatasetRead]`
`get_dataset(dataset_id: str) -> DatasetRead`
## RasterService
`read_metadata(path: Path) -> RasterMetadata`
`clip(dataset_id: str, area_id: str) -> JobRead`
`tile(dataset_id: str, parameters: TileParameters) -> JobRead`
`calculate_index(dataset_id: str, index_type: str, bands: dict) -> JobRead`
## VectorService
`read_metadata(path: Path) -> VectorMetadata`
`clip(dataset_id: str, area_id: str) -> JobRead`
`buffer(dataset_id: str, distance_m: float) -> JobRead`
`intersect(left_dataset_id: str, right_dataset_id: str) -> JobRead`
## DetectionService
`create_run(project_id: str, input: DetectionRunCreate) -> AnalysisRunRead`
`execute_run(run_id: str) -> DetectionRunResult`
## SegmentationService
`create_run(project_id: str, input: SegmentationRunCreate) -> AnalysisRunRead`
`execute_run(run_id: str) -> SegmentationRunResult`
## QAQCService
`create_quality_check(input: QualityCheckCreate) -> QualityCheckRead`
`calculate_iou_matrix(candidate_layer_id: str, reference_layer_id: str) -> IoUMatrix`
`calculate_metrics(matches: list[Match]) -> QualityMetrics`
## ExportService
`create_export(input: ExportCreate) -> ExportRead`
`write_geojson(layer_id: str) -> Path`
`write_metrics_csv(analysis_run_id: str) -> Path`