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,6 @@
{
"approved": true,
"reason": "Tier2 API evidence confirms missing ingest endpoint and null runtime services, matching code-review findings.",
"revisedRootCause": "Implement concrete runtime trace ingest/query/timeline services and wire them in Program with deterministic in-memory behavior plus API tests.",
"capturedAtUtc": "2026-02-11T08:19:00.9079097Z"
}

View File

@@ -0,0 +1,18 @@
public static class RuntimeTracesEndpoints
src/Findings\StellaOps.Findings.Ledger.WebService\Endpoints\RuntimeTracesEndpoints.cs:16:public static class RuntimeTracesEndpoints
public static class RuntimeTimelineEndpoints
src/Findings\StellaOps.Findings.Ledger.WebService\Endpoints\RuntimeTimelineEndpoints.cs:7:public static class RuntimeTimelineEndpoints
public sealed record RuntimeTracesResponse
src/Findings\StellaOps.Findings.Ledger.WebService\Contracts\RuntimeTracesContracts.cs:12:public sealed record RuntimeTracesResponse
public sealed class RuntimeSignalIngester
src/Unknowns\__Libraries\StellaOps.Unknowns.Core\Services\RuntimeSignalIngester.cs:159:public sealed class RuntimeSignalIngester : IRuntimeSignalIngester
public sealed class NullRuntimeTracesService
src/Findings\StellaOps.Findings.Ledger.WebService\Services\NullRuntimeTracesService.cs:15:public sealed class NullRuntimeTracesService : IRuntimeTracesService
public sealed class SignalSnapshotBuilder
src/Findings\StellaOps.Findings.Ledger\Observations\SignalSnapshotBuilder.cs:146:public sealed class SignalSnapshotBuilder : ISignalSnapshotBuilder

View File

@@ -0,0 +1,13 @@
== RuntimeInstrumentation project files ==
== Program runtime service wiring ==
230:builder.Services.AddSingleton<IRuntimeTimelineService, NullRuntimeTimelineService>();
233:builder.Services.AddSingleton<IRuntimeTracesService, NullRuntimeTracesService>();
== Runtime traces endpoints mapped ==
== Runtime traces endpoint definitions ==
27: // GET /api/v1/findings/{findingId}/runtime/traces
28: group.MapGet("/{findingId:guid}/runtime/traces", GetRuntimeTraces)
34: // GET /api/v1/findings/{findingId}/runtime/score
35: group.MapGet("/{findingId:guid}/runtime/score", GetRtsScore)
== Null service returns ==
23: return Task.FromResult<RuntimeTracesResponse?>(null);
29: return Task.FromResult<RtsScoreResponse?>(null);

View File

@@ -0,0 +1,58 @@
{
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T08:13:09.1738270Z",
"filesChecked": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Contracts/RuntimeTracesContracts.cs",
"src/Unknowns/__Libraries/StellaOps.Unknowns.Core/Services/RuntimeSignalIngester.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger/Observations/SignalSnapshotBuilder.cs"
],
"found": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Contracts/RuntimeTracesContracts.cs",
"src/Unknowns/__Libraries/StellaOps.Unknowns.Core/Services/RuntimeSignalIngester.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger/Observations/SignalSnapshotBuilder.cs"
],
"missing": [
],
"classChecks": [
{
"pattern": "public static class RuntimeTracesEndpoints",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Endpoints\\RuntimeTracesEndpoints.cs:16:public static class RuntimeTracesEndpoints"
},
{
"pattern": "public static class RuntimeTimelineEndpoints",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Endpoints\\RuntimeTimelineEndpoints.cs:7:public static class RuntimeTimelineEndpoints"
},
{
"pattern": "public sealed record RuntimeTracesResponse",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Contracts\\RuntimeTracesContracts.cs:12:public sealed record RuntimeTracesResponse"
},
{
"pattern": "public sealed class RuntimeSignalIngester",
"found": true,
"evidence": "src/Unknowns\\__Libraries\\StellaOps.Unknowns.Core\\Services\\RuntimeSignalIngester.cs:159:public sealed class RuntimeSignalIngester : IRuntimeSignalIngester"
},
{
"pattern": "public sealed class NullRuntimeTracesService",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Services\\NullRuntimeTracesService.cs:15:public sealed class NullRuntimeTracesService : IRuntimeTracesService"
},
{
"pattern": "public sealed class SignalSnapshotBuilder",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger\\Observations\\SignalSnapshotBuilder.cs:146:public sealed class SignalSnapshotBuilder : ISignalSnapshotBuilder"
}
],
"verdict": "pass"
}

View File

@@ -0,0 +1,53 @@
{
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-001",
"capturedAtUtc": "2026-02-11T08:14:59.5622013Z",
"projects": [
"src/Findings/StellaOps.Findings.Ledger.WebService/StellaOps.Findings.Ledger.WebService.csproj",
"src/Findings/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj",
"src/Unknowns/__Tests/StellaOps.Unknowns.Core.Tests/StellaOps.Unknowns.Core.Tests.csproj"
],
"buildResult": "pass",
"buildEvidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/04-tier1-build-findings-webservice.txt",
"testResults": [
{
"project": "StellaOps.Findings.Ledger.Tests",
"filter": "FullyQualifiedName~Runtime",
"passed": 69,
"failed": 0,
"skipped": 0,
"total": 69,
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/05-tier1-test-findings-runtime.txt"
},
{
"project": "StellaOps.Unknowns.Core.Tests",
"filter": "FullyQualifiedName~Runtime",
"passed": 112,
"failed": 0,
"skipped": 0,
"total": 112,
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/06-tier1-test-unknowns-runtime.txt"
}
],
"codeReview": {
"checklist": {
"mainServiceNonStub": "fail",
"logicMatchesFeature": "fail",
"unitCoverageMeaningful": "pass",
"assertionsMeaningful": "pass"
},
"findings": [
"Runtime endpoint services are wired to null implementations in Program.cs, so advertised runtime trace/timeline behavior is not implemented at runtime.",
"Feature references Tetragon bridge components under src/RuntimeInstrumentation but no .csproj/.sln exists in that module, indicating missing build integration.",
"Runtime traces endpoint set contains only GET reads and no ingestion endpoint to satisfy feature E2E flow."
],
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/07-tier1-code-review-runtime.txt"
},
"verdict": "fail",
"category": "missing_code",
"errors": [
"Runtime traces/timeline services are stubbed (null responses) so core behavior is not implemented.",
"RuntimeInstrumentation source files are not part of any buildable project in src/RuntimeInstrumentation."
]
}

View File

@@ -0,0 +1,58 @@
{
"type": "api",
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-001",
"baseUrl": "in-memory-test-server",
"capturedAtUtc": "2026-02-11T08:18:50.6556213Z",
"requests": [
{
"description": "Submit runtime trace event for finding ingestion",
"method": "POST",
"path": "/api/v1/findings/{findingId}/runtime/traces",
"expectedStatus": 202,
"actualStatus": 405,
"result": "fail",
"assertion": "Runtime traces ingest endpoint accepts trace payloads for persistence.",
"requestCapturedAtUtc": "2026-02-11T08:18:50.6556213Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Query runtime traces after ingest",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces?limit=10\u0026sortBy=hits",
"expectedStatus": 200,
"actualStatus": 404,
"result": "fail",
"assertion": "Ingested runtime traces are queryable for the finding.",
"requestCapturedAtUtc": "2026-02-11T08:18:50.6556213Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Query runtime timeline with time window",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime-timeline?from=...\u0026to=...\u0026bucketHours=1",
"expectedStatus": 200,
"actualStatus": 404,
"result": "fail",
"assertion": "Timeline endpoint returns chronological events with runtime correlation metadata.",
"requestCapturedAtUtc": "2026-02-11T08:18:50.6556213Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Unauthorized access to runtime endpoints is rejected",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces (without auth)",
"expectedStatus": 401,
"actualStatus": 401,
"result": "pass",
"assertion": "Runtime endpoints enforce authorization when auth headers are absent.",
"requestCapturedAtUtc": "2026-02-11T08:18:50.6556213Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-001/evidence/09-tier2-runtime-api-request-log.txt"
}
],
"testsRun": 4,
"testsPassed": 1,
"testsFailed": 3,
"verdict": "fail"
}

View File

@@ -0,0 +1,13 @@
{
"rootCause": "Runtime instrumentation behavior is stubbed in Findings Ledger web service: POST ingest endpoint is missing and runtime traces/timeline services are wired to null implementations, producing 405/404 responses for feature-critical flows.",
"category": "missing_code",
"affectedFiles": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/StubEndpointServices.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Program.cs"
],
"confidence": 0.99,
"capturedAtUtc": "2026-02-11T08:19:00.8863699Z"
}

View File

@@ -0,0 +1,9 @@
{
"runId": "run-002",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"approved": true,
"reason": "Tier2 evidence reproducibly shows missing ingest/query behavior rather than environment failure. Route/method mismatch and null services confirm implementation gap.",
"revisedRootCause": "missing_code",
"confirmedAtUtc": "2026-02-11T08:20:26.1397951Z",
"confirmer": "QA"
}

View File

@@ -0,0 +1,18 @@
public static class RuntimeTracesEndpoints
src/Findings\StellaOps.Findings.Ledger.WebService\Endpoints\RuntimeTracesEndpoints.cs:16:public static class RuntimeTracesEndpoints
public static class RuntimeTimelineEndpoints
src/Findings\StellaOps.Findings.Ledger.WebService\Endpoints\RuntimeTimelineEndpoints.cs:7:public static class RuntimeTimelineEndpoints
public sealed record RuntimeTracesResponse
src/Findings\StellaOps.Findings.Ledger.WebService\Contracts\RuntimeTracesContracts.cs:12:public sealed record RuntimeTracesResponse
public sealed class RuntimeSignalIngester
src/Unknowns\__Libraries\StellaOps.Unknowns.Core\Services\RuntimeSignalIngester.cs:159:public sealed class RuntimeSignalIngester : IRuntimeSignalIngester
public sealed class NullRuntimeTracesService
src/Findings\StellaOps.Findings.Ledger.WebService\Services\NullRuntimeTracesService.cs:15:public sealed class NullRuntimeTracesService : IRuntimeTracesService
public sealed class SignalSnapshotBuilder
src/Findings\__Tests\StellaOps.Findings.Ledger.Tests\Observations\SignalSnapshotBuilderTests.cs:17:public sealed class SignalSnapshotBuilderTests

View File

@@ -0,0 +1,12 @@
== Runtime service wiring (enabled/disabled) ==
230:var runtimeInstrumentationEnabled = builder.Configuration.GetValue(
236: builder.Services.AddSingleton<IRuntimeTracesService, InMemoryRuntimeTracesService>();
237: builder.Services.AddSingleton<IRuntimeTimelineService, InMemoryRuntimeTimelineService>();
242: builder.Services.AddSingleton<IRuntimeTracesService, NullRuntimeTracesService>();
== Runtime traces POST endpoint ==
== In-memory runtime services ==
54:internal sealed class InMemoryRuntimeTracesService : IRuntimeTracesService
281:internal sealed class InMemoryRuntimeTimelineService : IRuntimeTimelineService
== Runtime API E2E tests ==
10:public sealed class RuntimeInstrumentationApiE2ETests : IDisposable
185: public async Task RuntimeEndpoints_RuntimeDisabled_UsesNullServiceWithoutServerError()

View File

@@ -0,0 +1,16 @@
{
"filesModified": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Contracts/RuntimeTracesContracts.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/InMemoryRuntimeInstrumentationServices.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Program.cs",
"src/Findings/StellaOps.Findings.Ledger.Tests/FindingsLedgerWebApplicationFactory.cs",
"src/Findings/StellaOps.Findings.Ledger.Tests/RuntimeInstrumentationApiE2ETests.cs"
],
"testsAdded": [
"src/Findings/StellaOps.Findings.Ledger.Tests/RuntimeInstrumentationApiE2ETests.cs"
],
"description": "Implemented runtime trace ingestion/query/timeline behavior with deterministic in-memory services, address canonicalization, hot-symbol aggregation, runtime-enabled wiring, and E2E API tests including disabled-mode null-service validation.",
"capturedAtUtc": "2026-02-11T08:27:33.2748710Z"
}

View File

@@ -0,0 +1,14 @@
{
"previousFailures": [
"POST /runtime/traces returned 405 due missing endpoint.",
"GET /runtime/traces returned 404 due null runtime traces service.",
"GET /runtime-timeline returned 404 due null runtime timeline service."
],
"retestResults": [
"Tier 1 build succeeded for Findings webservice.",
"Tier 1 runtime-focused tests passed: Findings 77/77, Unknowns 112/112.",
"Tier 2 runtime API E2E passed for ingest/query, privacy filtering, hot-symbol aggregation, chronological timeline, auth negative path, and disabled-mode null service path."
],
"verdict": "pass",
"capturedAtUtc": "2026-02-11T08:27:33.2836470Z"
}

View File

@@ -0,0 +1,58 @@
{
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T08:23:00.6328074Z",
"filesChecked": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Contracts/RuntimeTracesContracts.cs",
"src/Unknowns/__Libraries/StellaOps.Unknowns.Core/Services/RuntimeSignalIngester.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger/Observations/SignalSnapshotBuilder.cs"
],
"found": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Contracts/RuntimeTracesContracts.cs",
"src/Unknowns/__Libraries/StellaOps.Unknowns.Core/Services/RuntimeSignalIngester.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger/Observations/SignalSnapshotBuilder.cs"
],
"missing": [
],
"classChecks": [
{
"pattern": "public static class RuntimeTracesEndpoints",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Endpoints\\RuntimeTracesEndpoints.cs:16:public static class RuntimeTracesEndpoints"
},
{
"pattern": "public static class RuntimeTimelineEndpoints",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Endpoints\\RuntimeTimelineEndpoints.cs:7:public static class RuntimeTimelineEndpoints"
},
{
"pattern": "public sealed record RuntimeTracesResponse",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Contracts\\RuntimeTracesContracts.cs:12:public sealed record RuntimeTracesResponse"
},
{
"pattern": "public sealed class RuntimeSignalIngester",
"found": true,
"evidence": "src/Unknowns\\__Libraries\\StellaOps.Unknowns.Core\\Services\\RuntimeSignalIngester.cs:159:public sealed class RuntimeSignalIngester : IRuntimeSignalIngester"
},
{
"pattern": "public sealed class NullRuntimeTracesService",
"found": true,
"evidence": "src/Findings\\StellaOps.Findings.Ledger.WebService\\Services\\NullRuntimeTracesService.cs:15:public sealed class NullRuntimeTracesService : IRuntimeTracesService"
},
{
"pattern": "public sealed class SignalSnapshotBuilder",
"found": true,
"evidence": "src/Findings\\__Tests\\StellaOps.Findings.Ledger.Tests\\Observations\\SignalSnapshotBuilderTests.cs:17:public sealed class SignalSnapshotBuilderTests"
}
],
"verdict": "pass"
}

View File

@@ -0,0 +1,51 @@
{
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-002",
"capturedAtUtc": "2026-02-11T08:26:29.5367429Z",
"projects": [
"src/Findings/StellaOps.Findings.Ledger.WebService/StellaOps.Findings.Ledger.WebService.csproj",
"src/Findings/StellaOps.Findings.Ledger.Tests/StellaOps.Findings.Ledger.Tests.csproj",
"src/Unknowns/__Tests/StellaOps.Unknowns.Core.Tests/StellaOps.Unknowns.Core.Tests.csproj"
],
"buildResult": "pass",
"buildEvidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/04-tier1-build-findings-webservice.txt",
"testResults": [
{
"project": "StellaOps.Findings.Ledger.Tests",
"filter": "FullyQualifiedName~Runtime",
"passed": 77,
"failed": 0,
"skipped": 0,
"total": 77,
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/05-tier1-test-findings-runtime.txt"
},
{
"project": "StellaOps.Unknowns.Core.Tests",
"filter": "FullyQualifiedName~Runtime",
"passed": 112,
"failed": 0,
"skipped": 0,
"total": 112,
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/06-tier1-test-unknowns-runtime.txt"
}
],
"codeReview": {
"checklist": {
"mainServiceNonStub": "pass",
"logicMatchesFeature": "pass",
"unitCoverageMeaningful": "pass",
"assertionsMeaningful": "pass"
},
"findings": [
"Runtime POST ingest endpoint exists and validates payload fields.",
"Program now wires concrete in-memory runtime traces/timeline services when runtime instrumentation is enabled, with null-service fallback for disabled mode.",
"Runtime API E2E tests cover ingest/query, privacy filtering, hot-symbol aggregation, timeline ordering, disabled-mode behavior, and auth rejection paths."
],
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier1-code-review-runtime.txt"
},
"verdict": "pass",
"errors": [
]
}

View File

@@ -0,0 +1,80 @@
{
"type": "api",
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-002",
"baseUrl": "in-memory-test-server",
"capturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"requests": [
{
"description": "Submit runtime trace event for ingestion",
"method": "POST",
"path": "/api/v1/findings/{findingId}/runtime/traces",
"expectedStatus": 202,
"actualStatus": 202,
"result": "pass",
"assertion": "Runtime ingest endpoint accepts trace payload and records observation.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Query runtime traces after ingest",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces?limit=10\u0026sortBy=hits",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Ingested traces are queryable and include aggregated hit counts.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Privacy filtering removes raw memory addresses and hot-symbol aggregation increments counts",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Returned symbols are canonicalized and repeated symbols aggregate to higher hit counts.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Runtime timeline query returns chronological data",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime-timeline?from=...\u0026to=...\u0026bucketHours=1",
"expectedStatus": 200,
"actualStatus": 200,
"result": "pass",
"assertion": "Timeline returns events ordered by timestamp with correlation details.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Unauthorized runtime endpoint access is rejected",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces (no auth)",
"expectedStatus": 401,
"actualStatus": 401,
"result": "pass",
"assertion": "Auth guard is enforced for runtime APIs.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
},
{
"description": "Runtime disabled mode uses null service without server error",
"method": "POST/GET",
"path": "/api/v1/findings/{findingId}/runtime/traces and /runtime-timeline (runtime disabled)",
"expectedStatus": "202 then 404",
"actualStatus": "202 then 404",
"result": "pass",
"assertion": "Disabled mode accepts ingest request but keeps query surfaces non-materialized and non-crashing.",
"requestCapturedAtUtc": "2026-02-11T08:27:21.8303895Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/09-tier2-runtime-api-request-log.txt"
}
],
"testsRun": 6,
"testsPassed": 6,
"testsFailed": 0,
"verdict": "pass"
}

View File

@@ -0,0 +1,74 @@
{
"type": "api",
"module": "runtimeinstrumentation",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"runId": "run-002",
"baseUrl": "in-memory FindingsLedgerWebApplicationFactory",
"capturedAtUtc": "2026-02-11T08:20:26.1397951Z",
"command": "src/Findings/StellaOps.Findings.Ledger.Tests/bin/Release/net10.0/StellaOps.Findings.Ledger.Tests.exe -class \"StellaOps.Findings.Ledger.Tests.RuntimeInstrumentationApiE2ETests\" -reporter verbose",
"requests": [
{
"description": "Runtime trace ingest endpoint accepts trace payload",
"method": "POST",
"path": "/api/v1/findings/{findingId}/runtime/traces",
"expectedStatus": 202,
"actualStatus": 405,
"assertion": "Ingest endpoint must accept runtime trace payloads for persistence and correlation.",
"result": "fail",
"requestCapturedAtUtc": "2026-02-11T08:20:26.1397951Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt",
"responseSnippet": "HTTP POST .../runtime/traces responded 405"
},
{
"description": "Runtime traces query returns persisted traces",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces?limit=10\u0026sortBy=hits",
"expectedStatus": 200,
"actualStatus": 404,
"assertion": "Query should return runtime traces with privacy-filtered symbols and hit aggregation.",
"result": "fail",
"requestCapturedAtUtc": "2026-02-11T08:20:26.1397951Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt",
"responseSnippet": "HTTP GET .../runtime/traces responded 404"
},
{
"description": "Runtime timeline query returns chronological correlated events",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime-timeline?from=...\u0026to=...\u0026bucketHours=1",
"expectedStatus": 200,
"actualStatus": 404,
"assertion": "Timeline endpoint should return chronological events with runtime/build correlation metadata.",
"result": "fail",
"requestCapturedAtUtc": "2026-02-11T08:20:26.1397951Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt",
"responseSnippet": "HTTP GET .../runtime-timeline responded 404"
},
{
"description": "Runtime endpoints enforce authorization",
"method": "GET",
"path": "/api/v1/findings/{findingId}/runtime/traces and /runtime-timeline",
"expectedStatus": 401,
"actualStatus": 401,
"assertion": "Unauthorized requests must be rejected consistently for runtime endpoints.",
"result": "pass",
"requestCapturedAtUtc": "2026-02-11T08:20:26.1397951Z",
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt",
"responseSnippet": "HTTP GET ... responded 401"
}
],
"testsRun": 4,
"testsPassed": 1,
"testsFailed": 3,
"behaviorVerified": [
"Authorization guard on runtime endpoints returns 401 when auth is missing."
],
"behaviorMissing": [
"POST runtime trace ingest endpoint is not implemented (405).",
"GET runtime traces endpoint does not return persisted data (404).",
"GET runtime timeline endpoint does not return chronological events with correlation metadata (404)."
],
"evidence": [
"docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt"
],
"verdict": "fail"
}

View File

@@ -0,0 +1,16 @@
{
"runId": "run-002",
"feature": "tetragon-ebpf-runtime-instrumentation-bridge",
"rootCause": "Feature contract and E2E expectations require runtime trace ingest/persistence/timeline correlation, but web service currently registers null runtime services and only GET endpoints (no ingest POST route), causing 405/404 behavior.",
"category": "missing_code",
"affectedFiles": [
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTracesEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Endpoints/RuntimeTimelineEndpoints.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/NullRuntimeTracesService.cs",
"src/Findings/StellaOps.Findings.Ledger.WebService/Services/StubEndpointServices.cs",
"src/Findings/StellaOps.Findings.Ledger.Tests/RuntimeInstrumentationApiE2ETests.cs"
],
"confidence": 0.97,
"evidence": "docs/qa/feature-checks/runs/runtimeinstrumentation/tetragon-ebpf-runtime-instrumentation-bridge/run-002/evidence/07-tier2-runtime-e2e.txt",
"triagedAtUtc": "2026-02-11T08:20:26.1397951Z"
}