save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -0,0 +1,4 @@
capturedAtUtc=2026-02-11T00:25:41.5532933Z
request=GET /exploit-maturity/CVE-2026-0201
---
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Wed, 11 Feb 2026 00:25:41 GMT Server: Kestrel Transfer-Encoding: chunked {"cveId":"CVE-2026-0201","level":0,"confidence":0,"signals":[],"rationale":"No exploit maturity signals available","assessedAt":"2026-02-11T00:25:41.5832457+00:00"}

View File

@@ -0,0 +1,4 @@
capturedAtUtc=2026-02-11T00:25:41.6005526Z
request=GET /exploit-maturity/CVE-2026-0201/level
---
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Wed, 11 Feb 2026 00:25:41 GMT Server: Kestrel Transfer-Encoding: chunked {"cveId":"CVE-2026-0201","level":"Unknown"}

View File

@@ -0,0 +1,4 @@
capturedAtUtc=2026-02-11T00:25:41.6358655Z
request=GET /exploit-maturity/CVE-2026-0201/history
---
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Wed, 11 Feb 2026 00:25:41 GMT Server: Kestrel Transfer-Encoding: chunked {"cveId":"CVE-2026-0201","entries":[]}

View File

@@ -0,0 +1,5 @@
capturedAtUtc=2026-02-11T00:25:41.6709365Z
request=POST /exploit-maturity/batch
headers=Content-Type: application/json
---
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Wed, 11 Feb 2026 00:25:41 GMT Server: Kestrel Transfer-Encoding: chunked {"results":[{"cveId":"CVE-2026-0201","level":0,"confidence":0,"signals":[],"rationale":"No exploit maturity signals available","assessedAt":"2026-02-11T00:25:41.7108096+00:00"},{"cveId":"INVALID","level":0,"confidence":0,"signals":[],"rationale":"No exploit maturity signals available","assessedAt":"2026-02-11T00:25:41.7108253+00:00"}],"errors":[]}

View File

@@ -0,0 +1,5 @@
capturedAtUtc=2026-02-11T00:25:41.7174182Z
request=POST /exploit-maturity/batch
headers=Content-Type: application/json
---
HTTP/1.1 400 Bad Request Content-Type: application/json; charset=utf-8 Date: Wed, 11 Feb 2026 00:25:41 GMT Server: Kestrel Transfer-Encoding: chunked {"error":"CveIds list is required"}

View File

@@ -0,0 +1,18 @@
{
"module": "riskengine",
"feature": "exploit-maturity-mapping",
"runId": "run-014",
"recordedRequests": [
"08-assess.txt",
"09-level.txt",
"10-history.txt",
"11-batch.txt",
"12-batch-empty.txt"
],
"tests": {
"total": 94,
"passed": 94,
"failed": 0
},
"capturedAtUtc": "2026-02-11T00:27:01.0820603Z"
}

View File

@@ -0,0 +1,16 @@
{
"filesChecked": [
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Core/Providers/ExploitMaturityService.cs",
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Core/Contracts/ExploitMaturityModels.cs",
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.WebService/Endpoints/ExploitMaturityEndpoints.cs"
],
"found": [
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Core/Providers/ExploitMaturityService.cs",
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Core/Contracts/ExploitMaturityModels.cs",
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.WebService/Endpoints/ExploitMaturityEndpoints.cs"
],
"missing": [
],
"verdict": "pass"
}

View File

@@ -0,0 +1,19 @@
{
"project": "src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Tests/StellaOps.RiskEngine.Tests.csproj",
"buildResult": "pass",
"testResult": "pass",
"command": "dotnet test src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Tests/StellaOps.RiskEngine.Tests.csproj -c Release --nologo",
"testProjects": [
"src/RiskEngine/StellaOps.RiskEngine/StellaOps.RiskEngine.Tests/StellaOps.RiskEngine.Tests.csproj"
],
"testsRun": 94,
"testsPassed": 94,
"testsFailed": 0,
"errors": [
],
"warnings": [
],
"runAtUtc": "2026-02-11T00:27:01.0820603Z"
}

View File

@@ -0,0 +1,73 @@
{
"type": "api",
"module": "riskengine",
"feature": "exploit-maturity-mapping",
"runId": "run-014",
"dateUtc": "2026-02-11T00:27:01.0820603Z",
"baseUrl": "https://127.1.0.16",
"transport": "curl -k (dev TLS)",
"capturedAtUtc": "2026-02-11T00:25:41.5532933Z",
"requests": [
{
"description": "Exploit maturity assessment endpoint",
"method": "GET",
"path": "/exploit-maturity/CVE-2026-0201",
"expectedStatus": 200,
"actualStatus": 200,
"assertion": "response includes cveId, level, confidence, signals, assessedAt",
"requestCapturedAtUtc": "2026-02-11T00:25:41.5532933Z",
"evidenceFile": "evidence/08-assess.txt",
"responseSnippet": "{\"cveId\":\"CVE-2026-0201\",\"level\":0,...}",
"result": "pass"
},
{
"description": "Exploit maturity level endpoint",
"method": "GET",
"path": "/exploit-maturity/CVE-2026-0201/level",
"expectedStatus": 200,
"actualStatus": 200,
"assertion": "response level is returned as string enum",
"requestCapturedAtUtc": "2026-02-11T00:25:41.6005526Z",
"evidenceFile": "evidence/09-level.txt",
"responseSnippet": "{\"cveId\":\"CVE-2026-0201\",\"level\":\"Unknown\"}",
"result": "pass"
},
{
"description": "Exploit maturity history endpoint",
"method": "GET",
"path": "/exploit-maturity/CVE-2026-0201/history",
"expectedStatus": 200,
"actualStatus": 200,
"assertion": "response returns history entries collection",
"requestCapturedAtUtc": "2026-02-11T00:25:41.6358655Z",
"evidenceFile": "evidence/10-history.txt",
"responseSnippet": "{\"cveId\":\"CVE-2026-0201\",\"entries\":[]}",
"result": "pass"
},
{
"description": "Batch endpoint accepts valid/duplicate/invalid values deterministically",
"method": "POST",
"path": "/exploit-maturity/batch",
"expectedStatus": 200,
"actualStatus": 200,
"assertion": "batch returns deterministic results payload and no transport failures",
"requestCapturedAtUtc": "2026-02-11T00:25:41.6709365Z",
"evidenceFile": "evidence/11-batch.txt",
"responseSnippet": "{\"results\":[...],\"errors\":[]}",
"result": "pass"
},
{
"description": "Batch endpoint rejects empty list",
"method": "POST",
"path": "/exploit-maturity/batch",
"expectedStatus": 400,
"actualStatus": 400,
"assertion": "error payload contains CveIds list is required",
"requestCapturedAtUtc": "2026-02-11T00:25:41.7174182Z",
"evidenceFile": "evidence/12-batch-empty.txt",
"responseSnippet": "{\"error\":\"CveIds list is required\"}",
"result": "pass"
}
],
"verdict": "pass"
}