documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "elf-build-id-correlation-and-dso-tracking",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Observer.Tests/StellaOps.Zastava.Observer.Tests.csproj",
|
||||
"testFilter": "ElfBuildIdReaderTests|RuntimeProcessCollectorTests|RuntimeFactsBuilderTests",
|
||||
"testsRun": 6,
|
||||
"testsPassed": 6,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"ELF Build-ID extraction from binary returns expected hex string",
|
||||
"Invalid ELF file returns null Build-ID",
|
||||
"Process collector parses cmdline and loaded libraries from /proc",
|
||||
"Process collector extracts DSO hashes from maps file",
|
||||
"Process collector produces entry traces for shell and Python entrypoints",
|
||||
"Process collector produces entry traces for Node.js entrypoints",
|
||||
"RuntimeFactsBuilder uses Build-ID and digest for symbol correlation",
|
||||
"RuntimeFactsBuilder parses component and version from image tag"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "runtime-posture-evaluation",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Observer.Tests/StellaOps.Zastava.Observer.Tests.csproj",
|
||||
"testFilter": "RuntimePostureEvaluatorTests",
|
||||
"testsRun": 2,
|
||||
"testsPassed": 2,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"Posture evaluator backs off to backend and caches entry with TTL",
|
||||
"Posture evaluator uses cache when backend fails and records error evidence",
|
||||
"Posture evaluation result includes image signing and SBOM referrer status",
|
||||
"Evidence includes posture source attribution (backend vs cache)"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "verdict-observer-validator-ledger",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Core.Tests/StellaOps.Zastava.Core.Tests.csproj",
|
||||
"testFilter": "ZastavaContractVersionsTests",
|
||||
"testsRun": 8,
|
||||
"testsPassed": 8,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"Contract version TryParse parses canonical forms with schema and version",
|
||||
"Contract version TryParse rejects invalid inputs",
|
||||
"RuntimeEvent version support respects major compatibility",
|
||||
"AdmissionDecision version support respects major compatibility",
|
||||
"NegotiateRuntimeEvent picks highest common version",
|
||||
"NegotiateAdmissionDecision picks highest common version",
|
||||
"Negotiate falls back to local version when no match found",
|
||||
"IVerdictObserver, IVerdictValidator, IVerdictLedger interfaces exist"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "windows-container-runtime-support",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Observer.Tests/StellaOps.Zastava.Observer.Tests.csproj",
|
||||
"testFilter": "WindowsContainerRuntimeTests|WindowsContainerRuntimeIntegrationTests",
|
||||
"testsRun": 15,
|
||||
"testsPassed": 15,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"WindowsContainerInfo required properties are set with correct defaults",
|
||||
"WindowsContainerInfo with Kubernetes owner has owner metadata",
|
||||
"HyperV container has isolation flag and runtime type",
|
||||
"WindowsContainerEvent required properties and data dictionary",
|
||||
"All WindowsContainerEventType enum values are defined",
|
||||
"WindowsRuntimeIdentity properties including HyperV availability",
|
||||
"All WindowsContainerState enum values are defined",
|
||||
"Container lifecycle timestamps track created/started/finished",
|
||||
"Container labels can be enumerated for Kubernetes metadata",
|
||||
"Container command captures entrypoint arguments",
|
||||
"WindowsLibraryHashCollector collects current process modules",
|
||||
"WindowsLibraryHashCollector respects maxLibraries limit",
|
||||
"WindowsLibraryHashCollector returns empty for invalid process ID",
|
||||
"WindowsLibraryHashCollector computes SHA256 hashes for accessible files"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "zastava-admission-webhook",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Webhook.Tests/StellaOps.Zastava.Webhook.Tests.csproj",
|
||||
"testFilter": "AdmissionReviewParserTests|AdmissionResponseBuilderTests|FacetAdmissionValidatorTests|RuntimeAdmissionPolicyServiceTests",
|
||||
"testsRun": 37,
|
||||
"testsPassed": 37,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"AdmissionReviewParser extracts containers from valid K8s AdmissionReview",
|
||||
"AdmissionReviewParser uses request namespace when available",
|
||||
"AdmissionReviewParser throws when no containers present",
|
||||
"AdmissionResponseBuilder allows when all decisions pass with audit annotations",
|
||||
"AdmissionResponseBuilder denied includes 403 status and warnings",
|
||||
"AdmissionResponseBuilder throws when namespace missing",
|
||||
"AdmissionResponseBuilder throws when no images",
|
||||
"FacetAdmissionValidator allows without annotation",
|
||||
"FacetAdmissionValidator denies when seal required but missing",
|
||||
"FacetAdmissionValidator allows with seal and no current root",
|
||||
"FacetAdmissionValidator handles drift ok/warning/blocked/requires-vex verdicts",
|
||||
"FacetAdmissionValidator annotation parsing handles case variations",
|
||||
"RuntimeAdmissionPolicyService uses cache on subsequent calls",
|
||||
"RuntimeAdmissionPolicyService fail-open when backend unavailable for configured namespace",
|
||||
"RuntimeAdmissionPolicyService fail-closed for critical namespaces",
|
||||
"RuntimeAdmissionPolicyService denies when tag unresolved (no digest)",
|
||||
"RuntimeAdmissionPolicyService denies when surface manifest missing"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "zastava-agent",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Core.Tests/StellaOps.Zastava.Core.Tests.csproj",
|
||||
"testFilter": "ZastavaContractVersionsTests|ZastavaServiceCollectionExtensionsTests",
|
||||
"testsRun": 38,
|
||||
"testsPassed": 38,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"Agent source code fully present: Program.cs, DockerSocketClient, DockerEventModels, DockerEventHostedService",
|
||||
"RuntimeEventBuffer implementation shared with Observer (tested in Observer.Tests)",
|
||||
"RuntimeEventDispatchService for batch dispatch present",
|
||||
"HealthCheckHostedService for agent health reporting present",
|
||||
"ZastavaAgentOptions configuration model present",
|
||||
"AgentServiceCollectionExtensions DI registration present",
|
||||
"Core contract versions validated through shared Core.Tests"
|
||||
],
|
||||
"notes": "No dedicated Agent.Tests project exists. Agent shares core contracts and RuntimeEventBuffer with Observer module. Tier 0 source verification passes; behavioral coverage via shared test projects.",
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "zastava-contract-validators",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Core.Tests/StellaOps.Zastava.Core.Tests.csproj",
|
||||
"testFilter": "ZastavaContractVersionsTests|OfflineStrictModeTests",
|
||||
"testsRun": 38,
|
||||
"testsPassed": 38,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"Contract version parsing validates canonical form with schema and version",
|
||||
"Contract version rejects invalid inputs",
|
||||
"RuntimeEvent version compatibility checks enforce major version",
|
||||
"AdmissionDecision version compatibility checks enforce major version",
|
||||
"Contract negotiation picks highest compatible version",
|
||||
"Contract negotiation falls back to local version when no remote match",
|
||||
"SurfaceCacheValidator validates path, minimum entries, and metadata filtering",
|
||||
"SurfaceCacheValidator ignores empty files and metadata files",
|
||||
"OfflineStrictModeHandler blocks external hosts in strict mode",
|
||||
"OfflineStrictModeHandler allows localhost and loopback addresses",
|
||||
"OfflineStrictModeHandler supports wildcard host patterns",
|
||||
"Full offline configuration validates via DI integration test"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "zastava-runtime-observer",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Observer.Tests/StellaOps.Zastava.Observer.Tests.csproj",
|
||||
"testFilter": "ContainerRuntimePollerTests|RuntimeEventBufferTests|RuntimeEventFactoryTests",
|
||||
"testsRun": 11,
|
||||
"testsPassed": 11,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"ContainerRuntimePoller produces start events in stable order",
|
||||
"ContainerRuntimePoller emits stop event when container missing",
|
||||
"ContainerRuntimePoller includes posture information in events",
|
||||
"BackoffCalculator computes delay within bounds with jitter",
|
||||
"RuntimeEventBuffer persists batch and ack removes files",
|
||||
"RuntimeEventBuffer restores pending events after restart",
|
||||
"RuntimeEventBuffer enforces disk capacity with eviction",
|
||||
"RuntimeEventFactory attaches Build-ID from process capture",
|
||||
"RuntimeEventFactory throws when tenant missing"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T12:00:00Z",
|
||||
"feature": "zastava-verdict-hashing-and-security",
|
||||
"module": "zastava",
|
||||
"testProject": "src/Zastava/__Tests/StellaOps.Zastava.Core.Tests/StellaOps.Zastava.Core.Tests.csproj",
|
||||
"testFilter": "ZastavaCanonicalJsonSerializerTests|OfflineStrictModeTests|ZastavaAuthorityTokenProviderTests",
|
||||
"testsRun": 38,
|
||||
"testsPassed": 38,
|
||||
"testsFailed": 0,
|
||||
"behaviorVerified": [
|
||||
"Canonical JSON serializer produces deterministic property ordering",
|
||||
"Canonical JSON serialization has no extra whitespace",
|
||||
"ComputeMultihash produces stable base64url SHA-256 digest",
|
||||
"ComputeMultihash normalizes algorithm aliases (sha-256 to sha256)",
|
||||
"ComputeMultihash throws for unsupported algorithm",
|
||||
"Authority token provider uses cache until refresh window",
|
||||
"Authority token provider throws when missing audience scope",
|
||||
"Authority token provider uses static fallback when enabled",
|
||||
"Authority token provider throws when DPoP required but token type is Bearer",
|
||||
"Offline strict mode blocks external hosts",
|
||||
"Offline strict mode allows localhost and loopback",
|
||||
"Offline strict mode supports wildcard host patterns"
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user