[AZ-178] Implement streaming video detection endpoint

- Added `/detect/video` endpoint for true streaming video detection, allowing inference to start as upload bytes arrive.
- Introduced `run_detect_video_stream` method in the inference module to handle video processing from a file-like object.
- Updated media hashing to include a new function for computing hashes directly from files with minimal I/O.
- Enhanced documentation to reflect changes in video processing and API behavior.

Made-with: Cursor
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-04-01 03:11:43 +03:00
parent e65d8da6a3
commit be4cab4fcb
42 changed files with 2983 additions and 29 deletions
@@ -0,0 +1,56 @@
# Deployment Status Report
**Date**: 2026-03-31
**Project**: Azaion.Detections
## Component Readiness
| Component | Status | Notes |
|-----------|--------|-------|
| Detections Service (CPU) | Implemented & Tested | Dockerfile exists, e2e tests pass |
| Detections Service (GPU) | Implemented & Tested | Dockerfile.gpu exists, e2e tests pass |
| E2E Test Suite | Implemented | docker-compose.test.yml exists |
| Mock Services (Loader, Annotations) | Implemented | docker-compose.mocks.yml exists |
## External Dependencies
| Dependency | Type | Required | Notes |
|------------|------|----------|-------|
| Loader Service | REST API | Yes | Model download/upload |
| Annotations Service | REST API | Yes | Result persistence, auth refresh |
| classes.json | Config file | Yes | Mounted into container |
| ONNX model (azaion.onnx) | AI model | Yes | Served by Loader |
## Infrastructure Prerequisites
| Prerequisite | Status | Action Required |
|-------------|--------|-----------------|
| Container registry | Needed | User must provide registry URL |
| Docker runtime | Available | Both CPU and GPU Dockerfiles exist |
| NVIDIA runtime | Needed for GPU | `nvidia-docker` required for Dockerfile.gpu |
| Reverse proxy / TLS | Needed | No TLS at application level; requires external termination |
| DNS / Service discovery | Needed | Services communicate by hostname |
| Persistent storage | Not needed | Service is stateless |
## Environment Variables
| Variable | Default | Required | Purpose |
|----------|---------|----------|---------|
| LOADER_URL | http://loader:8080 | Yes | Loader service endpoint |
| ANNOTATIONS_URL | http://annotations:8080 | Yes | Annotations service endpoint |
| CLASSES_JSON_PATH | classes.json | Yes | Detection class definitions |
| LOG_DIR | Logs | No | Log output directory |
| VIDEOS_DIR | ./data/videos | No | Upload video storage |
| IMAGES_DIR | ./data/images | No | Upload image storage |
## Deployment Blockers
| Blocker | Severity | Mitigation |
|---------|----------|------------|
| Security findings (FAIL verdict) | High | Fix Critical/High CVEs before production (see `_docs/05_security/security_report.md`) |
| Containers run as root | Medium | Add non-root USER directive to Dockerfiles |
| No CI/CD pipeline | Medium | Define and implement pipeline |
## Recommendation
The application is functionally ready for deployment. Security findings from the audit should be addressed before production deployment — at minimum, pin dependencies to fix CVE-2025-43859 and CVE-2026-28356.