Files
satellite-provider/_docs/03_implementation/deploy_cycle9.md
T
Oleksandr Bezdieniezhnykh 7ed780b063
ci/woodpecker/push/01-test Pipeline failed
ci/woodpecker/push/02-build-push unknown status
[AZ-1074] [AZ-1075] Cycle 9 closeout: security, tests, metrics
Resolve F-AZ1074-1/2 (collection caps, generic gRPC internal errors).
Standalone integration compose stack, docs, security audit, perf and retro.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 17:32:14 +03:00

3.3 KiB

Deploy Report — Cycle 9 (AZ-1074 + AZ-1075)

Date: 2026-06-25 Cycle: 9 Scope: gRPC RouteTileDelivery streaming service (AZ-1074) + integration test coverage (AZ-1075).

What is shipping

Code changes (uncommitted on dev at report time)

Area Change
SatelliteProvider.GrpcContracts/ New shared project — tile_provision.proto, GrpcServices=Both
SatelliteProvider.Api/Grpc/RouteTileDeliveryGrpcService.cs [Authorize] streaming RPC; generic internal error to client
SatelliteProvider.Api/Program.cs AddGrpc (16 MiB recv / 64 MiB send); MapGrpcService after auth
RouteTileDeliveryOrchestrator Collection caps (500/50/5000); lat/lon validation
Integration tests RouteTileDeliveryGrpcTests, GrpcTestHelpers; standalone docker-compose.tests.yml
Docs / security Cycle-9 module docs, traceability, security reports + hardening

Database migrations

None.

Configuration changes

Setting Change
New env vars None — gRPC uses existing JWT auth
docker-compose.tests.yml Self-contained test stack (no host port publish)
Container image Same base mcr.microsoft.com/dotnet/aspnet:10.0; Dockerfile copies GrpcContracts

Contract changes (consumer-visible)

Contract Change Consumer action
gRPC RouteTileDelivery.DeliverRouteTiles New — server-streaming tile delivery Clients import SatelliteProvider.GrpcContracts; Bearer/metadata auth required
REST endpoints Unchanged wire shape No action

Verification gates passed in this cycle

Gate Result Evidence
Step 11 — Functional tests PASS 448 unit + integration exit 0 (scripts/run-tests.sh --full)
Step 12 — Test-Spec Sync PASS BT-32 gRPC scenarios; traceability matrix updated
Step 13 — Update Docs PASS api_program.md, tests_integration.md, module-layout.md, ripple log
Step 14 — Security Audit PASS (delta) security_report_cycle9.md; F-AZ1074-1/2 resolved in follow-up
Step 15 — Performance Test PASS perf_2026-06-25_cycle9.md — 8/8 REST scenarios, exit 0

Outstanding carry-overs (unchanged)

  • F-AZ795-1, F-AZ795-2 — REST error message sanitization
  • D-AZ795-1 — FluentValidation 12.0.0 → 12.1.1
  • D2-cy4 — test SDK transitive advisory

Operator runbook

  1. Commit and push cycle-9 changes to origin/dev; confirm Woodpecker 01-test green.
  2. No migration — deploy new image only.
  3. Smoke-test after deploy:
    • REST: existing endpoints (401 without JWT, 200 with JWT)
    • gRPC: DeliverRouteTiles with valid JWT — expect manifest + tile chunks or InvalidArgument on bad input
  4. Ingress: ensure HTTP/2 (gRPC) is forwarded if clients connect through ingress; dev stack uses TLS on 18980.
Estimate Title
3 SP PT-10 gRPC stream latency / backpressure perf scenario
2 SP REST error sanitizer pass (F-AZ795-1/2)
1 SP FluentValidation 12.0.0 → 12.1.1 (D-AZ795-1)
1 SP Document postgres port conflict workaround for parallel dev stacks

Verdict: Cleared for Step 16.5 (Release) pending operator commit/push and environment selection.