# Restrictions ## Software Constraints | Constraint | Value | Source | |-----------|-------|--------| | Runtime | .NET 8.0 (LTS) | global.json, Dockerfile | | Database | PostgreSQL 16 | docker-compose.yml | | Container runtime | Docker | Dockerfile, docker-compose.yml | | Image processing | SixLabors.ImageSharp 3.1.11 | SatelliteProvider.Services.csproj | | CI platform | Woodpecker CI | .woodpecker/*.yml | | Target architecture | ARM64 (primary), AMD64 (prepared) | .woodpecker/02-build-push.yml | ## Operational Constraints | Constraint | Value | Source | |-----------|-------|--------| | Deployment model | Single instance (no horizontal scaling) | In-process Channel queue, no distributed state | | Max concurrent tile downloads | 4 (configurable) | ProcessingConfig | | Max concurrent region processing | 20 (configurable) | ProcessingConfig | | Queue capacity | 1000 requests | ProcessingConfig | | Max ZIP archive size | 50 MB | RouteProcessingService | | Tile versioning | Year-based integer (e.g., 2025) | Migration 004 | ## Environment Constraints | Constraint | Value | Source | |-----------|-------|--------| | Storage | Local filesystem (./tiles, ./ready, ./logs) | docker-compose.yml volumes | | Network | Outbound HTTPS to Google Maps required | GoogleMapsDownloaderV2 | | Authentication | None (internal/trusted network only) | Program.cs (no auth middleware) | | Database persistence | Docker volume (postgres_data) | docker-compose.yml | ## Dependencies on External Services | Service | Criticality | Failure Impact | |---------|-------------|----------------| | Satellite imagery provider (provider-agnostic via `ISatelliteDownloader`; e.g., Google Maps) | High | No new tiles can be downloaded; cached tiles still served | | PostgreSQL | Critical | Service cannot start; all state operations fail | | File system | Critical | Cannot store tiles or produce output artifacts |