documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF

This commit is contained in:
master
2026-02-25 01:24:07 +02:00
parent b07d27772e
commit 4db038123b
9090 changed files with 4836 additions and 2909 deletions

View File

@@ -0,0 +1 @@
{"status":"degraded","timestamp":"2026-02-11T18:37:50.2729911+00:00","lifterStatus":"unavailable","lifterWarm":false,"lifterPoolStats":{},"cacheStatus":"unavailable","cacheEnabled":false}

View File

@@ -0,0 +1 @@
{"timestamp":"2026-02-11T18:38:12.6737700+00:00","iterations":5,"lifterAcquireLatencyMs":{"min":0,"max":0,"mean":0,"p50":0,"p95":0,"p99":0},"cacheLookupLatencyMs":{"min":0,"max":0,"mean":0,"p50":0,"p95":0,"p99":0}}

View File

@@ -0,0 +1 @@
{"title":"Invalid iterations","status":400,"detail":"Iterations must be between 1 and 1000"}

View File

@@ -0,0 +1 @@
{"enabled":false,"hits":0,"misses":0,"evictions":0,"hitRate":0,"keyPrefix":"","cacheTtlSeconds":0}

View File

@@ -0,0 +1 @@
{"lifterPoolMaxSizePerIsa":4,"lifterPoolWarmPreloadEnabled":true,"lifterPoolWarmPreloadIsas":["intel-64","intel-32","armv8-64","armv7-32"],"lifterPoolAcquireTimeoutSeconds":5,"cacheEnabled":true,"cacheKeyPrefix":"stellaops:binidx:funccache:","cacheTtlSeconds":14400,"cacheMaxTtlSeconds":86400,"b2R2Version":"0.9.1","normalizationRecipeVersion":"v1"}

View File

@@ -0,0 +1,67 @@
{
"type": "source",
"module": "binaryindex",
"feature": "binaryindex-ops-endpoints",
"runId": "run-003",
"capturedAtUtc": "2026-02-11T18:36:31.8566227Z",
"filesChecked": [
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Controllers/BinaryIndexOpsController.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Program.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Services/InMemoryBinaryVulnerabilityService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/FunctionIrCacheService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPoolOptions.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Configuration/BinaryIndexOptions.cs"
],
"found": [
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Controllers/BinaryIndexOpsController.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Program.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Services/InMemoryBinaryVulnerabilityService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/FunctionIrCacheService.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPoolOptions.cs",
"src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Configuration/BinaryIndexOptions.cs"
],
"missing": [
],
"declarations": [
{
"symbol": "BinaryIndexOpsController",
"path": "src/BinaryIndex/StellaOps.BinaryIndex.WebService/Controllers/BinaryIndexOpsController.cs",
"declared": true,
"match": "class BinaryIndexOpsController"
},
{
"symbol": "InMemoryBinaryVulnerabilityService",
"path": "src/BinaryIndex/StellaOps.BinaryIndex.WebService/Services/InMemoryBinaryVulnerabilityService.cs",
"declared": true,
"match": "class InMemoryBinaryVulnerabilityService"
},
{
"symbol": "IBinaryVulnerabilityService registration",
"path": "src/BinaryIndex/StellaOps.BinaryIndex.WebService/Program.cs",
"declared": true,
"match": "TryAddSingleton\u003cIBinaryVulnerabilityService, InMemoryBinaryVulnerabilityService\u003e"
},
{
"symbol": "B2R2LifterPool",
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPool.cs",
"declared": true,
"match": "class B2R2LifterPool"
},
{
"symbol": "FunctionIrCacheService",
"path": "src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/FunctionIrCacheService.cs",
"declared": true,
"match": "class FunctionIrCacheService"
},
{
"symbol": "BinaryIndexBenchRequest",
"path": "src/BinaryIndex/StellaOps.BinaryIndex.WebService/Controllers/BinaryIndexOpsController.cs",
"declared": true,
"match": "record BinaryIndexBenchRequest"
}
],
"verdict": "pass"
}

View File

@@ -0,0 +1,27 @@
{
"type": "build",
"module": "binaryindex",
"feature": "binaryindex-ops-endpoints",
"runId": "run-003",
"capturedAtUtc": "2026-02-11T18:36:58.1030843Z",
"project": "src/BinaryIndex/StellaOps.BinaryIndex.WebService/StellaOps.BinaryIndex.WebService.csproj",
"testProject": "src/BinaryIndex/__Tests/StellaOps.BinaryIndex.WebService.Tests/StellaOps.BinaryIndex.WebService.Tests.csproj",
"buildResult": "pass",
"testResult": "pass",
"testsRun": 38,
"testsPassed": 38,
"testsFailed": 0,
"codeReview": {
"keyFilesReviewed": [
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Program.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Controllers/BinaryIndexOpsController.cs",
"src/BinaryIndex/StellaOps.BinaryIndex.WebService/Services/InMemoryBinaryVulnerabilityService.cs"
],
"fixValidation": "WebService composition root contains deterministic fallback IBinaryVulnerabilityService registration and ops endpoints remain routable."
},
"evidence": {
"buildLog": "evidence/tier1-build.log",
"testLog": "evidence/tier1-test.log"
},
"verdict": "pass"
}

View File

@@ -0,0 +1,71 @@
{
"type": "api",
"module": "binaryindex",
"feature": "binaryindex-ops-endpoints",
"runId": "run-003",
"baseUrl": "https://127.1.0.36",
"capturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"requests": [
{
"description": "Health endpoint returns lifter/cache readiness payload",
"method": "GET",
"path": "/api/v1/ops/binaryindex/health",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Status and payload schema align with ops contract.",
"requestCapturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"evidence": "evidence/01-health.json",
"responseSnippet": "{\"status\":\"degraded\",\"timestamp\":\"2026-02-11T18:37:50.2729911+00:00\",\"lifterStatus\":\"unavailable\",\"lifterWarm\":false,\"lifterPoolStats\":{},\"cacheStatus\":\"unavailable\",\"cacheEnabled\":false}"
},
{
"description": "Bench endpoint returns latency summary for valid iterations",
"method": "POST",
"path": "/api/v1/ops/binaryindex/bench/run",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Status and payload schema align with ops contract.",
"requestCapturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"evidence": "evidence/02-bench-valid.json",
"responseSnippet": "{\"timestamp\":\"2026-02-11T18:38:12.6737700+00:00\",\"iterations\":5,\"lifterAcquireLatencyMs\":{\"min\":0,\"max\":0,\"mean\":0,\"p50\":0,\"p95\":0,\"p99\":0},\"cacheLookupLatencyMs\":{\"min\":0,\"max\":0,\"mean\":0,\"p50\":0,\"p95\":0,\"p99\":0}}"
},
{
"description": "Bench endpoint rejects invalid iteration values (negative path)",
"method": "POST",
"path": "/api/v1/ops/binaryindex/bench/run",
"expectedStatus": 400,
"actualStatus": 400,
"result": "pass",
"assertion": "Status and payload schema align with ops contract.",
"requestCapturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"evidence": "evidence/03-bench-invalid.json",
"responseSnippet": "{\"title\":\"Invalid iterations\",\"status\":400,\"detail\":\"Iterations must be between 1 and 1000\"}"
},
{
"description": "Cache endpoint returns hit/miss counters and TTL metadata",
"method": "GET",
"path": "/api/v1/ops/binaryindex/cache",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Status and payload schema align with ops contract.",
"requestCapturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"evidence": "evidence/04-cache.json",
"responseSnippet": "{\"enabled\":false,\"hits\":0,\"misses\":0,\"evictions\":0,\"hitRate\":0,\"keyPrefix\":\"\",\"cacheTtlSeconds\":0}"
},
{
"description": "Config endpoint returns effective options with no secrets",
"method": "GET",
"path": "/api/v1/ops/binaryindex/config",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Status and payload schema align with ops contract.",
"requestCapturedAtUtc": "2026-02-11T18:40:31.8823820Z",
"evidence": "evidence/05-config.json",
"responseSnippet": "{\"lifterPoolMaxSizePerIsa\":4,\"lifterPoolWarmPreloadEnabled\":true,\"lifterPoolWarmPreloadIsas\":[\"intel-64\",\"intel-32\",\"armv8-64\",\"armv7-32\"],\"lifterPoolAcquireTimeoutSeconds\":5,\"cacheEnabled\":true,\"cacheKeyPrefix\":\"stellaops:binidx:funccache:\",\"cacheTtlSeconds\":14400,\"cacheMaxTtlSeconds\":86400,\"b2R2Ve"
}
],
"verdict": "pass"
}