mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-21 17:51:13 +00:00
b0fffa6d42
Phase A baseline outputs from /autodev (Steps 1-5): - Problem & solution docs (_docs/00_problem, _docs/01_solution) - Codebase documentation (_docs/02_document) incl. architecture, module-layout, glossary, system-flows, baseline compliance scan - Test specs (blackbox, performance, resilience, security, resource, traceability matrix) - Test task decomposition (_docs/02_tasks/todo): AZ-285..AZ-290 - Testability refactor (_docs/04_refactoring/01-testability-refactoring): - TC-01 Move DownloadedTileInfoV2 + new ExistingTileInfo to Common.DTO - TC-02 Replace dead ISatelliteDownloader API with real signatures - TC-03 GoogleMapsDownloaderV2 implements ISatelliteDownloader - TC-04 TileService depends on ISatelliteDownloader (mockable) - TC-05 DI + endpoints use ISatelliteDownloader - Test runner scripts (scripts/run-tests.sh, run-performance-tests.sh) - Autodev state pointer (_docs/_autodev_state.md) Prepares the codebase for AZ-285..AZ-290 unit/integration test work. Co-authored-by: Cursor <cursoragent@cursor.com>
41 lines
1.9 KiB
Markdown
41 lines
1.9 KiB
Markdown
# 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 |
|