Files
Oleksandr Bezdieniezhnykh b0fffa6d42 [AZ-284] Autodev baseline + testability refactor
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>
2026-05-10 04:44:08 +03:00

1.9 KiB

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