using Microsoft.Extensions.Configuration; using StellaOps.Doctor.Plugins; using StellaOps.Doctor.Plugins.Verification.Checks; using StellaOps.Doctor.Plugins.Verification.Configuration; namespace StellaOps.Doctor.Plugins.Verification; /// /// Artifact verification pipeline diagnostic plugin providing SBOM, VEX, signature, and policy health checks. /// public sealed class VerificationPlugin : IDoctorPlugin { /// public string PluginId => "stellaops.doctor.verification"; /// public string DisplayName => "Artifact Verification Pipeline"; /// public DoctorCategory Category => DoctorCategory.Security; /// public Version Version => new(1, 0, 0); /// public Version MinEngineVersion => new(1, 0, 0); /// public bool IsAvailable(IServiceProvider services) { // Plugin is available if verification configuration exists return true; // Checks will skip if not configured } /// public IReadOnlyList GetChecks(DoctorPluginContext context) { return [ new TestArtifactPullCheck(), new SignatureVerificationCheck(), new SbomValidationCheck(), new VexValidationCheck(), new PolicyEngineCheck() ]; } /// public Task InitializeAsync(DoctorPluginContext context, CancellationToken ct) { return Task.CompletedTask; } internal static VerificationPluginOptions GetOptions(DoctorPluginContext context) { var options = new VerificationPluginOptions(); context.PluginConfig.Bind(options); return options; } }