documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,16 @@
|
||||
Tier1 Code Review Checklist - notification-rules-engine
|
||||
CapturedAtUtc: 2026-02-11T14:00:38.8671722Z
|
||||
|
||||
[YES] Main implementations are non-trivial
|
||||
9:public sealed class DefaultNotifyRuleEvaluator : INotifyRuleEvaluator
|
||||
14:public sealed class SimulationEngine : ISimulationEngine
|
||||
17:public static class RuleEndpoints
|
||||
15:public static class SimulationEndpoints
|
||||
|
||||
[YES] Logic matches dossier claims (kind/namespace/repo/digest/severity/verdict + simulation + CRUD)
|
||||
|
||||
[YES] Unit/integration tests cover core behavior and meaningful assertions
|
||||
9:public sealed class RuleEvaluatorTests
|
||||
13:public class SimulationEngineTests
|
||||
15:public sealed class NotifyApiEndpointsTests : IClassFixture<WebApplicationFactory<WebProgram>>
|
||||
10:public sealed class SimulationEndpointsBehaviorTests : IClassFixture<NotifierApplicationFactory>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"runId": "run-002",
|
||||
"module": "notifier",
|
||||
"feature": "notification-rules-engine",
|
||||
"capturedAtUtc": "2026-02-11T14:00:55.9576893Z",
|
||||
"codeChangesRequired": true,
|
||||
"summary": "Fixed missing simulation DI wiring in WebService by registering INotifyRuleEvaluator and AddSimulationServices; added SimulationEndpointsBehaviorTests and hardened no-side-effects assertions to baseline rule count.",
|
||||
"filesChanged": [
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Program.cs",
|
||||
"src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Endpoints/SimulationEndpointsBehaviorTests.cs"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"runId": "run-002",
|
||||
"module": "notifier",
|
||||
"feature": "notification-rules-engine",
|
||||
"capturedAtUtc": "2026-02-11T14:00:55.9576893Z",
|
||||
"retestRequired": true,
|
||||
"retryCount": 1,
|
||||
"verdict": "pass",
|
||||
"details": "run-001 failed due missing ISimulationEngine registration; run-002 retest passed Tier 0/1/2 after DI + test fixes."
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"type": "source",
|
||||
"module": "notifier",
|
||||
"feature": "notification-rules-engine",
|
||||
"runId": "run-002",
|
||||
"capturedAtUtc": "2026-02-11T13:53:20.1884750Z",
|
||||
"featureFile": "docs/features/unchecked/notifier/notification-rules-engine.md",
|
||||
"sourceVerified": true,
|
||||
"files": [
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/DefaultNotifyRuleEvaluator.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Processing/NotifierEventProcessor.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/SimulationEngine.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/DefaultNotifySimulationEngine.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/ISimulationEngine.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Simulation/SimulationServiceExtensions.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Program.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/RuleEndpoints.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/SimulationEndpoints.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Setup/RiskTemplateSeeder.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Setup/AttestationTemplateSeeder.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Storage/InMemoryNotifyRepositories.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.docs/risk-rules.sample.json",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/RuleEvaluatorTests.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Simulation/SimulationEngineTests.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/EventProcessorTests.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Endpoints/NotifyApiEndpointsTests.cs",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Endpoints/SimulationEndpointsBehaviorTests.cs",
|
||||
"exists": true
|
||||
}
|
||||
],
|
||||
"symbols": [
|
||||
{
|
||||
"symbol": "INotifyRuleEvaluator registration",
|
||||
"pattern": "AddSingleton\u003cStellaOps.Notify.Engine.INotifyRuleEvaluator, StellaOps.Notifier.Worker.Processing.DefaultNotifyRuleEvaluator\u003e()",
|
||||
"found": true,
|
||||
"evidence": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.WebService\\Program.cs:56:builder.Services.AddSingleton\u003cStellaOps.Notify.Engine.INotifyRuleEvaluator, StellaOps.Notifier.Worker.Processing.DefaultNotifyRuleEvaluator\u003e();"
|
||||
},
|
||||
{
|
||||
"symbol": "Simulation services registration",
|
||||
"pattern": "SimulationServiceExtensions.AddSimulationServices(builder.Services, builder.Configuration)",
|
||||
"found": true,
|
||||
"evidence": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.WebService\\Program.cs:57:StellaOps.Notifier.Worker.Simulation.SimulationServiceExtensions.AddSimulationServices(builder.Services, builder.Configuration);"
|
||||
},
|
||||
{
|
||||
"symbol": "DefaultNotifyRuleEvaluator",
|
||||
"pattern": "class DefaultNotifyRuleEvaluator",
|
||||
"found": true,
|
||||
"evidence": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Processing\\DefaultNotifyRuleEvaluator.cs:9:public sealed class DefaultNotifyRuleEvaluator : INotifyRuleEvaluator"
|
||||
},
|
||||
{
|
||||
"symbol": "SimulationEndpoints",
|
||||
"pattern": "class SimulationEndpoints",
|
||||
"found": true,
|
||||
"evidence": [
|
||||
"src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.WebService\\Endpoints\\SimulationEndpoints.cs:15:public static class SimulationEndpoints",
|
||||
"src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Endpoints\\SimulationEndpointsBehaviorTests.cs:9:public sealed class SimulationEndpointsBehaviorTests : IClassFixture\u003cNotifierApplicationFactory\u003e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "SimulationEngine",
|
||||
"pattern": "class SimulationEngine",
|
||||
"found": true,
|
||||
"evidence": [
|
||||
"src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Simulation\\SimulationEngine.cs:14:public sealed class SimulationEngine : ISimulationEngine",
|
||||
"src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Simulation\\SimulationEngineTests.cs:13:public class SimulationEngineTests"
|
||||
]
|
||||
},
|
||||
{
|
||||
"symbol": "SimulationServiceExtensions",
|
||||
"pattern": "class SimulationServiceExtensions",
|
||||
"found": true,
|
||||
"evidence": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Worker\\Simulation\\SimulationServiceExtensions.cs:9:public static class SimulationServiceExtensions"
|
||||
},
|
||||
{
|
||||
"symbol": "Simulation endpoint behavior tests",
|
||||
"pattern": "class SimulationEndpointsBehaviorTests",
|
||||
"found": true,
|
||||
"evidence": "src/Notifier/StellaOps.Notifier\\StellaOps.Notifier.Tests\\Endpoints\\SimulationEndpointsBehaviorTests.cs:9:public sealed class SimulationEndpointsBehaviorTests : IClassFixture\u003cNotifierApplicationFactory\u003e"
|
||||
}
|
||||
],
|
||||
"missingCount": 0,
|
||||
"totalFiles": 18,
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"type": "build",
|
||||
"module": "notifier",
|
||||
"feature": "notification-rules-engine",
|
||||
"runId": "run-002",
|
||||
"capturedAtUtc": "2026-02-11T13:59:37.3555848Z",
|
||||
"projects": [
|
||||
{
|
||||
"project": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/StellaOps.Notifier.Worker.csproj",
|
||||
"exitCode": 0,
|
||||
"log": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier1-build-worker.txt"
|
||||
},
|
||||
{
|
||||
"project": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/StellaOps.Notifier.WebService.csproj",
|
||||
"exitCode": 0,
|
||||
"log": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier1-build-webservice.txt"
|
||||
},
|
||||
{
|
||||
"project": "src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj",
|
||||
"exitCode": 0,
|
||||
"log": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier1-build-tests.txt"
|
||||
}
|
||||
],
|
||||
"tests": {
|
||||
"command": "dotnet test src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/StellaOps.Notifier.Tests.csproj -c Release --no-build",
|
||||
"exitCode": 0,
|
||||
"log": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier1-test-fullsuite.txt"
|
||||
},
|
||||
"buildVerified": true,
|
||||
"testVerified": true,
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"type": "api",
|
||||
"module": "notifier",
|
||||
"feature": "notification-rules-engine",
|
||||
"runId": "run-002",
|
||||
"capturedAtUtc": "2026-02-11T14:00:23.1483761Z",
|
||||
"commands": [
|
||||
{
|
||||
"description": "Rule CRUD API lifecycle via /api/v2/notify/rules (list/create/get/delete + missing tenant negative path).",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.Endpoints.NotifyApiEndpointsTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-api-rules-crud.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
},
|
||||
{
|
||||
"description": "Simulation API behavior via /api/v2/simulate and /api/v2/simulate/validate including tenant-required negative path and no-side-effects check.",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.Endpoints.SimulationEndpointsBehaviorTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-api-simulation.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
},
|
||||
{
|
||||
"description": "Rule evaluator matching behavior for kind/labels/severity/verdict.",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.RuleEvaluatorTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-engine-rule-evaluator.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
},
|
||||
{
|
||||
"description": "Simulation engine non-match reasons including severity_below_threshold and rule_disabled warnings.",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.Simulation.SimulationEngineTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-engine-simulation.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
},
|
||||
{
|
||||
"description": "Risk template/rule seeding behavior.",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.RiskTemplateSeederTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-seeders.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
},
|
||||
{
|
||||
"description": "Attestation template/rule seeding behavior.",
|
||||
"command": "dotnet src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/bin/Release/net10.0/StellaOps.Notifier.Tests.dll -class StellaOps.Notifier.Tests.AttestationTemplateSeederTests",
|
||||
"expectedExitCode": 0,
|
||||
"actualExitCode": 0,
|
||||
"summary": {
|
||||
"failed": null,
|
||||
"passed": null,
|
||||
"skipped": null,
|
||||
"total": null
|
||||
},
|
||||
"result": "pass",
|
||||
"evidenceLog": "docs\\qa\\feature-checks\\runs\\notifier\\notification-rules-engine\\run-002\\evidence\\tier2-seeders-attestation.txt",
|
||||
"hasPositiveAndNegativePaths": true
|
||||
}
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user