partly or unimplemented features - now implemented

This commit is contained in:
master
2026-02-09 08:53:51 +02:00
parent 1bf6bbf395
commit 4bdc298ec1
674 changed files with 90194 additions and 2271 deletions

View File

@@ -223,3 +223,37 @@ Capabilities are cached per registry host with a 1-hour TTL.
- [ ] Retention policies and pruning jobs configured for staged bundles.
> **Imposed rule:** Work of this type or tasks of this type on this component must also be applied everywhere else it should be applied.
## Client Surfacing of Hidden Backend Capabilities
The `ExportSurfacingClient` extends the existing `ExportCenterClient` by
exposing backend capabilities that were previously not surfaced to CLI/UI
consumers.
### Surfaced Capabilities
| Capability | Interface Method | Route |
| --- | --- | --- |
| Profile CRUD | `CreateProfileAsync`, `UpdateProfileAsync`, `ArchiveProfileAsync` | `POST/PUT/DELETE /v1/exports/profiles` |
| Run Lifecycle | `StartRunAsync`, `CancelRunAsync` | `POST /profiles/{id}/runs`, `POST /runs/{id}/cancel` |
| Artifact Browsing | `ListArtifactsAsync`, `GetArtifactAsync`, `DownloadArtifactAsync` | `GET /runs/{id}/artifacts` |
| Verification | `VerifyRunAsync`, `GetManifestAsync`, `GetAttestationStatusAsync` | `POST /runs/{id}/verify`, `GET .../manifest`, `GET .../attestation` |
| Discovery | `DiscoverCapabilitiesAsync` | Local (15 known capabilities) |
### Key Types
| Type | Location | Purpose |
| --- | --- | --- |
| `IExportSurfacingClient` | `Client/IExportSurfacingClient.cs` | Interface for extended operations |
| `ExportSurfacingClient` | `Client/ExportSurfacingClient.cs` | HTTP implementation |
| `ExportSurfacingModels.cs` | `Client/Models/` | DTOs for profile CRUD, artifacts, verification, attestation status, capability discovery |
### DI Registration
`AddExportSurfacingClient(Action<ExportCenterClientOptions>)` in
`ServiceCollectionExtensions.cs` — reuses the same `ExportCenterClientOptions`.
### Test Coverage (37 tests)
- Models: CreateExportProfileRequest defaults, UpdateExportProfileRequest nulls, StartExportRunRequest defaults, ExportArtifact roundtrip, empty list, VerifyExportRunRequest defaults, ExportVerificationResult, HashVerificationEntry match/mismatch, SignatureVerificationEntry, ExportManifest, ExportAttestationStatus, ExportCapability, ExportCapabilitySummary, StartExportRunResponse
- Client: Constructor null guards (2), DiscoverCapabilities (all/profiles/verification/audit-bundles/openapi-anonymous), argument validation (8 — CreateProfile/ArchiveProfile/CancelRun/StartRun/ListArtifacts/GetArtifact/VerifyRun/GetManifest/GetAttestationStatus)