mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-27 08:31:13 +00:00
[AZ-1132] Bump FluentValidation 12.0.0 to 12.1.1
Closes D-AZ795-1 production dependency carry-over. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,8 +7,8 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FluentValidation" Version="12.0.0" />
|
<PackageReference Include="FluentValidation" Version="12.1.1" />
|
||||||
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
|
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="12.1.1" />
|
||||||
<PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
|
<PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.7" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.7"/>
|
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.7"/>
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ Buffers each `IFormFile` into memory, packages them as `UavUploadFile` records (
|
|||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
All project references: Common, DataAccess, Services.
|
All project references: Common, DataAccess, Services.
|
||||||
NuGet: `Serilog.AspNetCore` (8.0.3 — fallback retained on .NET 10 per AZ-500 Risk #4: no 10.x line published as of cycle 4; documented in `AGENTS.md`), `Swashbuckle.AspNetCore` (10.1.7 — bumped from 6.6.2 by AZ-500 to land Microsoft.OpenApi 2.x compat required by ASP.NET Core 10), `Microsoft.AspNetCore.OpenApi` (10.0.7 — bumped from 8.0.25 by AZ-500), `Microsoft.AspNetCore.Authentication.JwtBearer` (10.0.7 — added at 8.0.21 by AZ-487, bumped to 8.0.25 by AZ-496, bumped to 10.0.7 by AZ-500), `FluentValidation` + `FluentValidation.DependencyInjectionExtensions` (12.0.0 — added by AZ-795 to back the strict-input-validation epic), `SixLabors.ImageSharp`, `Newtonsoft.Json`.
|
NuGet: `Serilog.AspNetCore` (8.0.3 — fallback retained on .NET 10 per AZ-500 Risk #4: no 10.x line published as of cycle 4; documented in `AGENTS.md`), `Swashbuckle.AspNetCore` (10.1.7 — bumped from 6.6.2 by AZ-500 to land Microsoft.OpenApi 2.x compat required by ASP.NET Core 10), `Microsoft.AspNetCore.OpenApi` (10.0.7 — bumped from 8.0.25 by AZ-500), `Microsoft.AspNetCore.Authentication.JwtBearer` (10.0.7 — added at 8.0.21 by AZ-487, bumped to 8.0.25 by AZ-496, bumped to 10.0.7 by AZ-500), `FluentValidation` + `FluentValidation.DependencyInjectionExtensions` (12.1.1 — added at 12.0.0 by AZ-795; bumped 12.0.0 → 12.1.1 by AZ-1132 cycle 15), `SixLabors.ImageSharp`, `Newtonsoft.Json`.
|
||||||
|
|
||||||
**Microsoft.OpenApi 2.x refactor note (AZ-500)**: the major bump (1.x → 2.x) drove three internal Swashbuckle-setup edits in this file — `using Microsoft.OpenApi.Models;` → `using Microsoft.OpenApi;`; `AddSecurityRequirement(...)` rewritten to take a `Func<OpenApiDocument, OpenApiSecurityRequirement>` and use `OpenApiSecuritySchemeReference("Bearer")` instead of the removed `OpenApiSecurityScheme.Reference` shape; `MapType<UavTileBatchUploadRequest>` rewritten to use the new `JsonSchemaType` enum and `IDictionary<string, IOpenApiSchema>` properties bag. The Swagger document shape (paths, operations, the Bearer Authorize button, the multipart-batch upload schema) is preserved exactly — `SwaggerDocument_AdvertisesBearerSecurityScheme` and the AZ-353 swagger-ready integration assertions still pass. Eight `ASPDEPR002` deprecation warnings (`WithOpenApi(...)`) remain — they're recorded in `_docs/03_implementation/reviews/batch_01_cycle4_review.md` as a follow-up PBI; the API is still fully functional in .NET 10 (deprecated, not removed).
|
**Microsoft.OpenApi 2.x refactor note (AZ-500)**: the major bump (1.x → 2.x) drove three internal Swashbuckle-setup edits in this file — `using Microsoft.OpenApi.Models;` → `using Microsoft.OpenApi;`; `AddSecurityRequirement(...)` rewritten to take a `Func<OpenApiDocument, OpenApiSecurityRequirement>` and use `OpenApiSecuritySchemeReference("Bearer")` instead of the removed `OpenApiSecurityScheme.Reference` shape; `MapType<UavTileBatchUploadRequest>` rewritten to use the new `JsonSchemaType` enum and `IDictionary<string, IOpenApiSchema>` properties bag. The Swagger document shape (paths, operations, the Bearer Authorize button, the multipart-batch upload schema) is preserved exactly — `SwaggerDocument_AdvertisesBearerSecurityScheme` and the AZ-353 swagger-ready integration assertions still pass. Eight `ASPDEPR002` deprecation warnings (`WithOpenApi(...)`) remain — they're recorded in `_docs/03_implementation/reviews/batch_01_cycle4_review.md` as a follow-up PBI; the API is still fully functional in .NET 10 (deprecated, not removed).
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Existing baseline (pre-cycle-2) test classes cover `TileService`, `RegionService
|
|||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
- Project references: `SatelliteProvider.Services.TileDownloader`, `SatelliteProvider.Services.RegionProcessing`, `SatelliteProvider.Services.RouteManagement`, `SatelliteProvider.Common`, `SatelliteProvider.DataAccess`, `SatelliteProvider.Api` (for the Authentication tests — added in AZ-487), `SatelliteProvider.TestSupport` (added by AZ-491; provides the canonical `JwtTokenFactory` consumed by both this project and `SatelliteProvider.IntegrationTests`).
|
- Project references: `SatelliteProvider.Services.TileDownloader`, `SatelliteProvider.Services.RegionProcessing`, `SatelliteProvider.Services.RouteManagement`, `SatelliteProvider.Common`, `SatelliteProvider.DataAccess`, `SatelliteProvider.Api` (for the Authentication tests — added in AZ-487), `SatelliteProvider.TestSupport` (added by AZ-491; provides the canonical `JwtTokenFactory` consumed by both this project and `SatelliteProvider.IntegrationTests`).
|
||||||
- NuGet: xUnit (2.5.3), Moq (4.20.72), FluentAssertions (8.8.0), coverlet.collector (6.0.0), Microsoft.NET.Test.Sdk (17.8.0), Microsoft.Extensions.* (Caching.Memory, Configuration, DI, Logging, Options, Http — all bumped from 9.0.10 → 10.0.7 by AZ-500 as a coordinated cycle-4 move), `Microsoft.AspNetCore.Authentication.JwtBearer` 10.0.7 (consumed transitively via the `ProjectReference` to `SatelliteProvider.Api`; AZ-487 added the dependency at 8.0.21, AZ-496 bumped it to 8.0.25, AZ-500 bumped it to 10.0.7), `SixLabors.ImageSharp` 3.1.11 (added by AZ-488 for the gate tests), `FluentValidation` + `FluentValidation.TestHelper` 12.0.0 (added cycle 7 — AZ-795; the test helper drives the `TestValidate(...)` assertions used by `InventoryRequestValidatorTests`).
|
- NuGet: xUnit (2.5.3), Moq (4.20.72), FluentAssertions (8.8.0), coverlet.collector (6.0.0), Microsoft.NET.Test.Sdk (17.8.0), Microsoft.Extensions.* (Caching.Memory, Configuration, DI, Logging, Options, Http — all bumped from 9.0.10 → 10.0.7 by AZ-500 as a coordinated cycle-4 move), `Microsoft.AspNetCore.Authentication.JwtBearer` 10.0.7 (consumed transitively via the `ProjectReference` to `SatelliteProvider.Api`; AZ-487 added the dependency at 8.0.21, AZ-496 bumped it to 8.0.25, AZ-500 bumped it to 10.0.7), `SixLabors.ImageSharp` 3.1.11 (added by AZ-488 for the gate tests), `FluentValidation` + `FluentValidation.TestHelper` 12.1.1 (added cycle 7 — AZ-795; bumped cycle 15 — AZ-1132; the test helper drives the `TestValidate(...)` assertions used by `InventoryRequestValidatorTests`).
|
||||||
- `appsettings.json` copied to output (used by Authentication tests for the `Jwt` section binding scenario).
|
- `appsettings.json` copied to output (used by Authentication tests for the `Jwt` section binding scenario).
|
||||||
|
|
||||||
## Consumers
|
## Consumers
|
||||||
|
|||||||
@@ -265,6 +265,13 @@ Step 9 cycle 11: 1 task created (AZ-1123 = 1 pt) — document `docker-compose.pe
|
|||||||
Step 9 cycle 12: 1 task created (AZ-1124 = 3 pts) — PT-10 gRPC `DeliverRouteTiles` stream perf scenario (cycle 9–11 retro carry-over).
|
Step 9 cycle 12: 1 task created (AZ-1124 = 3 pts) — PT-10 gRPC `DeliverRouteTiles` stream perf scenario (cycle 9–11 retro carry-over).
|
||||||
Step 9 cycle 13: 1 task created (AZ-1126 = 2 pts) — `DateTime` → `DateTimeOffset` on `UavTileMetadata.capturedAt` (F-AZ810-2). Child of AZ-795.
|
Step 9 cycle 13: 1 task created (AZ-1126 = 2 pts) — `DateTime` → `DateTimeOffset` on `UavTileMetadata.capturedAt` (F-AZ810-2). Child of AZ-795.
|
||||||
Step 9 cycle 14: 1 task created (AZ-1131 = 1 pt) — align `environment.md` integration command with `run-tests.sh` (cycle 13 retro carry-over).
|
Step 9 cycle 14: 1 task created (AZ-1131 = 1 pt) — align `environment.md` integration command with `run-tests.sh` (cycle 13 retro carry-over).
|
||||||
|
Step 9 cycle 15: 1 task created (AZ-1132 = 1 pt) — bump FluentValidation 12.0.0 → 12.1.1 (D-AZ795-1). Child of AZ-795.
|
||||||
|
|
||||||
|
### Step 9 cycle 15 (FluentValidation bump — AZ-1132)
|
||||||
|
|
||||||
|
| Task | Depends On | Points | Status |
|
||||||
|
|------|-----------|--------|--------|
|
||||||
|
| AZ-1132 FluentValidation 12.0.0 → 12.1.1 (D-AZ795-1) | AZ-795 | 1 | Done (In Testing) |
|
||||||
|
|
||||||
### Step 9 cycle 14 (environment.md integration command — AZ-1131)
|
### Step 9 cycle 14 (environment.md integration command — AZ-1131)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
# Bump FluentValidation 12.0.0 → 12.1.1
|
||||||
|
|
||||||
|
**Task**: AZ-1132_fluentvalidation_bump
|
||||||
|
**Name**: Bump FluentValidation 12.0.0 → 12.1.1
|
||||||
|
**Description**: Coordinated patch bump of `FluentValidation` and `FluentValidation.DependencyInjectionExtensions` from 12.0.0 to 12.1.1 in `SatelliteProvider.Api`. Closes security finding D-AZ795-1 — sole remaining Low production dependency carry-over from cycle 13.
|
||||||
|
**Complexity**: 1 point
|
||||||
|
**Dependencies**: AZ-795 (shared validation infra — already shipped)
|
||||||
|
**Component**: SatelliteProvider.Api — dependency upgrade only
|
||||||
|
**Tracker**: AZ-1132
|
||||||
|
**Epic**: AZ-795
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
Cycle-13 dependency scan (`_docs/05_security/dependency_scan_cycle13.md`) carries **D-AZ795-1** (Low): production `FluentValidation` packages remain pinned at 12.0.0 while 12.1.1 is available. The finding is the last open Low-severity production dependency item from the AZ-795 validation-hardening epic footprint.
|
||||||
|
|
||||||
|
Leaving the pin stale keeps cumulative security posture at **PASS_WITH_WARNINGS** and defers a one-line manifest fix that should ride with the validation stack the epic introduced.
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
- Both `FluentValidation` and `FluentValidation.DependencyInjectionExtensions` resolve to 12.1.1 (or latest 12.1.x patch at implementation time if higher).
|
||||||
|
- All existing validator unit tests and validation integration tests pass unchanged.
|
||||||
|
- `dotnet list SatelliteProvider.sln package --vulnerable` reports no production FluentValidation finding.
|
||||||
|
- D-AZ795-1 marked Resolved in the cycle-15 security artifacts.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
### Included
|
||||||
|
|
||||||
|
- Edit `SatelliteProvider.Api/SatelliteProvider.Api.csproj`:
|
||||||
|
- `FluentValidation` 12.0.0 → 12.1.1
|
||||||
|
- `FluentValidation.DependencyInjectionExtensions` 12.0.0 → 12.1.1
|
||||||
|
- Run full test suite (`./scripts/run-tests.sh`) — all green required.
|
||||||
|
- Update cycle-15 security scan/report artifacts: mark D-AZ795-1 Resolved.
|
||||||
|
- Update `_docs/02_document/modules/api_program.md` and `_docs/02_document/modules/tests_unit.md` version pins if they reference 12.0.0.
|
||||||
|
|
||||||
|
### Excluded
|
||||||
|
|
||||||
|
- Bumping unrelated packages (D2-cy4 JWT test packages, ImageSharp, etc.).
|
||||||
|
- Any validator rule, contract, or API behavior change.
|
||||||
|
- `error-shape.md` contract version bump — no wire-format change.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
**AC-1: Both FluentValidation packages pinned to 12.1.1**
|
||||||
|
Given the post-task `SatelliteProvider.Api.csproj`
|
||||||
|
When package versions are inspected
|
||||||
|
Then both `FluentValidation` and `FluentValidation.DependencyInjectionExtensions` resolve to `Version="12.1.1"` (or latest 12.1.x if 12.1.1 is superseded).
|
||||||
|
|
||||||
|
**AC-2: Validator unit tests pass**
|
||||||
|
Given the bumped repository
|
||||||
|
When the validator unit test classes under `SatelliteProvider.Tests/Validators/` run
|
||||||
|
Then all tests pass with no changes to expected error keys or messages.
|
||||||
|
|
||||||
|
**AC-3: Validation integration tests pass**
|
||||||
|
Given the bumped repository
|
||||||
|
When validation-focused integration tests run (inventory, region, route, upload, latlon)
|
||||||
|
Then all pass with no new failures vs. the pre-bump baseline.
|
||||||
|
|
||||||
|
**AC-4: Vulnerable package scan clean for production FluentValidation**
|
||||||
|
Given the bumped repository
|
||||||
|
When `dotnet list SatelliteProvider.sln package --vulnerable` is run
|
||||||
|
Then no production-project finding references FluentValidation 12.0.0.
|
||||||
|
|
||||||
|
**AC-5: Security finding D-AZ795-1 resolved**
|
||||||
|
Given the post-task `_docs/05_security/` cycle-15 artifacts
|
||||||
|
When dependency scan and security report are read
|
||||||
|
Then D-AZ795-1 status is Resolved with a reference to this task's tracker ID.
|
||||||
|
|
||||||
|
## Non-Functional Requirements
|
||||||
|
|
||||||
|
**Compatibility**
|
||||||
|
- Patch-level bump within FluentValidation 12.x — no public API contract changes expected.
|
||||||
|
|
||||||
|
**Reliability**
|
||||||
|
- Full test suite is the regression gate; smoke-only is insufficient for a validation-stack dependency.
|
||||||
|
|
||||||
|
## Unit Tests
|
||||||
|
|
||||||
|
| AC Ref | What to Test | Required Outcome |
|
||||||
|
|--------|-------------|-----------------|
|
||||||
|
| AC-2 | All `SatelliteProvider.Tests/Validators/*` classes | PASS unchanged |
|
||||||
|
|
||||||
|
## Blackbox Tests
|
||||||
|
|
||||||
|
| AC Ref | Initial Data/Conditions | What to Test | Expected Behavior | NFR References |
|
||||||
|
|--------|------------------------|-------------|-------------------|----------------|
|
||||||
|
| AC-3 | Existing validation integration fixtures | Inventory, region, route, upload, latlon validation suites | HTTP 400 shapes unchanged for known bad payloads | Compatibility |
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
|
||||||
|
- Both FluentValidation packages must bump in lockstep (same version line).
|
||||||
|
- No production code changes unless required by a breaking change in 12.1.1 (unlikely for patch).
|
||||||
|
|
||||||
|
## Risks & Mitigation
|
||||||
|
|
||||||
|
**Risk 1: Patch changes validator behavior**
|
||||||
|
- *Risk*: FluentValidation 12.1.x alters rule evaluation or error message formatting.
|
||||||
|
- *Mitigation*: Full validator unit + integration test run; revert pin if unexpected diffs appear.
|
||||||
|
|
||||||
|
**Risk 2: Transitive version conflict**
|
||||||
|
- *Risk*: Another package pins FluentValidation to 12.0.0.
|
||||||
|
- *Mitigation*: Inspect `dotnet list package --include-transitive` after bump; align any direct pins.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Batch Report
|
||||||
|
|
||||||
|
**Batch**: 1
|
||||||
|
**Tasks**: AZ-1132_fluentvalidation_bump
|
||||||
|
**Date**: 2026-06-26
|
||||||
|
**Cycle**: 15
|
||||||
|
|
||||||
|
## Task Results
|
||||||
|
|
||||||
|
| Task | Status | Files Modified | Tests | AC Coverage | Issues |
|
||||||
|
|------|--------|---------------|-------|-------------|--------|
|
||||||
|
| AZ-1132 | Done | 5 files | Validator unit: 144/144 PASS (host) | 5/5 ACs covered | Docker `protoc` segfault blocks `./scripts/run-tests.sh` on this host — Step 11 gate |
|
||||||
|
|
||||||
|
## AC Test Coverage
|
||||||
|
|
||||||
|
| AC | Verification |
|
||||||
|
|----|--------------|
|
||||||
|
| AC-1 | `SatelliteProvider.Api.csproj` pins FluentValidation + DI extensions at 12.1.1 |
|
||||||
|
| AC-2 | `dotnet test --filter FullyQualifiedName~Validators` → 144 passed |
|
||||||
|
| AC-3 | Integration validation suites deferred to Step 11 (`run-tests.sh` full) |
|
||||||
|
| AC-4 | `dotnet list package --vulnerable` — Api has no vulnerable packages |
|
||||||
|
| AC-5 | `dependency_scan_cycle15.md` + `security_report_cycle15.md` mark D-AZ795-1 Resolved |
|
||||||
|
|
||||||
|
## Code Review Verdict: PASS
|
||||||
|
|
||||||
|
Patch-level dependency bump only; no production logic, contract, or validator rule changes.
|
||||||
|
|
||||||
|
## Auto-Fix Attempts: 0
|
||||||
|
## Stuck Agents: None
|
||||||
|
|
||||||
|
## Next Batch: All tasks complete
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Implementation Completeness — Cycle 15
|
||||||
|
|
||||||
|
**Date**: 2026-06-26
|
||||||
|
**Cycle**: 15
|
||||||
|
**Tasks**: AZ-1132
|
||||||
|
|
||||||
|
## Per-Task Classification
|
||||||
|
|
||||||
|
| Task | Classification | Evidence |
|
||||||
|
|------|----------------|----------|
|
||||||
|
| AZ-1132 | **PASS** | csproj pins 12.1.1; docs + security artifacts updated; validator unit tests green |
|
||||||
|
|
||||||
|
## System Pipeline Audit
|
||||||
|
|
||||||
|
No new pipelines introduced. Dependency-only change — N/A.
|
||||||
|
|
||||||
|
## Gate Verdict
|
||||||
|
|
||||||
|
**PASS** — proceed to Step 11 (Run Tests).
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Implementation Report — FluentValidation bump (Cycle 15)
|
||||||
|
|
||||||
|
**Cycle**: 15
|
||||||
|
**Tasks**: AZ-1132 (1 SP)
|
||||||
|
**Feature slug**: fluentvalidation_bump
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Coordinated patch bump of `FluentValidation` and `FluentValidation.DependencyInjectionExtensions` from 12.0.0 to 12.1.1 in `SatelliteProvider.Api`. Closes D-AZ795-1.
|
||||||
|
|
||||||
|
## Changes
|
||||||
|
|
||||||
|
| Area | Change |
|
||||||
|
|------|--------|
|
||||||
|
| `SatelliteProvider.Api.csproj` | FluentValidation packages 12.0.0 → 12.1.1 |
|
||||||
|
| Module docs | Version pins updated in `api_program.md`, `tests_unit.md` |
|
||||||
|
| Security | `dependency_scan_cycle15.md`, `security_report_cycle15.md` — D-AZ795-1 Resolved |
|
||||||
|
|
||||||
|
## Test Evidence
|
||||||
|
|
||||||
|
- Validator unit tests (host): **144 passed** (`FullyQualifiedName~Validators`)
|
||||||
|
- Full `./scripts/run-tests.sh`: **not run green** — Docker SDK container `protoc` exit 139 on `linux_arm64` (environment; unrelated to package bump). Step 11 is the canonical full-suite gate.
|
||||||
|
|
||||||
|
## Verdict
|
||||||
|
|
||||||
|
**Implementation complete** pending Step 11 full-suite confirmation.
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Dependency Scan (Cycle 15)
|
||||||
|
|
||||||
|
**Date**: 2026-06-26
|
||||||
|
**Mode**: Delta scan
|
||||||
|
**Scope**: Cycle-15 delta — AZ-1132 (FluentValidation 12.0.0 → 12.1.1).
|
||||||
|
**Method**: `dotnet list SatelliteProvider.sln package --vulnerable`.
|
||||||
|
|
||||||
|
## Cycle-15 Package Manifest Diff
|
||||||
|
|
||||||
|
| csproj | Cycle 13 baseline | Cycle 15 change |
|
||||||
|
|--------|-------------------|-----------------|
|
||||||
|
| `SatelliteProvider.Api` | FluentValidation 12.0.0, FluentValidation.DependencyInjectionExtensions 12.0.0 | **12.1.1** (both) |
|
||||||
|
|
||||||
|
## Vulnerable Package Scan (2026-06-26)
|
||||||
|
|
||||||
|
| Project | Finding | Severity | Notes |
|
||||||
|
|---------|---------|----------|-------|
|
||||||
|
| `SatelliteProvider.Api` | none | — | Production runtime — clean |
|
||||||
|
| `SatelliteProvider.Common` | none | — | — |
|
||||||
|
| `SatelliteProvider.IntegrationTests` | transitive JWT 7.0.3 | Moderate | GHSA-59j7-ghrg-fj52 — test-runtime only (pre-existing) |
|
||||||
|
| `SatelliteProvider.TestSupport` | `System.IdentityModel.Tokens.Jwt` 7.0.3 | Moderate | test-runtime only — pre-existing |
|
||||||
|
|
||||||
|
## Cycle-15 Findings
|
||||||
|
|
||||||
|
**No new dependency CVEs.** Patch bump only.
|
||||||
|
|
||||||
|
## Resolved carry-overs
|
||||||
|
|
||||||
|
- **D-AZ795-1** (Low): FluentValidation 12.0.0 → 12.1.1 — **RESOLVED** (AZ-1132)
|
||||||
|
|
||||||
|
## Remaining carry-overs
|
||||||
|
|
||||||
|
- **D2-cy4** (Medium, test-runtime): JWT test packages — still open
|
||||||
|
|
||||||
|
## Verdict
|
||||||
|
|
||||||
|
**PASS** (cycle-15 delta) — D-AZ795-1 closed; zero new CVEs.
|
||||||
|
|
||||||
|
Cumulative: **PASS_WITH_WARNINGS** — D2-cy4 only.
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# Security Audit Report (Cycle 15)
|
||||||
|
|
||||||
|
**Date**: 2026-06-26
|
||||||
|
**Scope**: Cycle-15 delta — AZ-1132 (FluentValidation bump / D-AZ795-1 closure).
|
||||||
|
**Trigger**: Implement batch — dependency hardening (Step 14 audit pending).
|
||||||
|
**Verdict (cycle-15 delta)**: **PASS** — D-AZ795-1 resolved; 0 new Critical/High/Medium.
|
||||||
|
**Verdict (cumulative)**: **PASS_WITH_WARNINGS** — D2-cy4 remains open.
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
| Severity | Cycle 15 at audit | Cumulative open |
|
||||||
|
|----------|-------------------|-----------------|
|
||||||
|
| Critical | 0 | 0 |
|
||||||
|
| High | 0 | 0 |
|
||||||
|
| Medium | 0 | 1 (D2-cy4 test-runtime) |
|
||||||
|
| Low | 0 (D-AZ795-1 resolved) | 0 |
|
||||||
|
|
||||||
|
## Findings
|
||||||
|
|
||||||
|
| # | Severity | Category | Location | Title | Status |
|
||||||
|
|---|----------|----------|----------|-------|--------|
|
||||||
|
| D-AZ795-1 | Low | Dependency | `SatelliteProvider.Api` FluentValidation packages | Pin at 12.0.0 | **RESOLVED** (AZ-1132 → 12.1.1) |
|
||||||
|
|
||||||
|
## Carry-overs (still open)
|
||||||
|
|
||||||
|
- **D2-cy4** — test SDK transitive JWT advisory (Moderate, test-runtime only)
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Immediate
|
||||||
|
- None blocking cycle 15 ship.
|
||||||
|
|
||||||
|
### Short-term
|
||||||
|
- D2-cy4: pin JWT test packages when upstream resolves GHSA-59j7-ghrg-fj52 for 7.0.3 line.
|
||||||
|
|
||||||
|
## Artifacts
|
||||||
|
|
||||||
|
- `dependency_scan_cycle15.md`
|
||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
## Current Step
|
## Current Step
|
||||||
flow: existing-code
|
flow: existing-code
|
||||||
step: 9
|
step: 10
|
||||||
name: New Task
|
name: Implement
|
||||||
status: not_started
|
status: in_progress
|
||||||
sub_step:
|
sub_step:
|
||||||
phase: 0
|
phase: 1
|
||||||
name: awaiting-invocation
|
name: parse
|
||||||
detail: ""
|
detail: ""
|
||||||
retry_count: 0
|
retry_count: 0
|
||||||
cycle: 15
|
cycle: 15
|
||||||
@@ -21,7 +21,6 @@ step_11_run_tests: completed
|
|||||||
step_12_test_spec_sync: completed
|
step_12_test_spec_sync: completed
|
||||||
step_13_update_docs: completed
|
step_13_update_docs: completed
|
||||||
step_14_security: skipped
|
step_14_security: skipped
|
||||||
step_15_perf: skipped
|
|
||||||
step_16_deploy: skipped
|
step_16_deploy: skipped
|
||||||
step_16_5_release: skipped
|
step_16_5_release: skipped
|
||||||
step_17_retrospective: completed
|
step_17_retrospective: completed
|
||||||
|
|||||||
Reference in New Issue
Block a user