# Plugin System with DI, Signing, and Version Attributes ## Module Concelier ## Status IMPLEMENTED ## Description Plugin architecture using IDependencyInjectionRoutine and ServiceBinding attributes for dependency injection, with isolated AssemblyLoadContext loading. Cosign signature verification and StellaPluginVersion attributes are defined. ## Implementation Details - **Modules**: `src/Concelier/StellaOps.Concelier.Plugin.Unified/`, `src/Concelier/__Libraries/StellaOps.Concelier.Core/Orchestration/` - **Key Classes**: - `FeedPluginAdapterFactory` (`src/Concelier/StellaOps.Concelier.Plugin.Unified/FeedPluginAdapterFactory.cs`) - factory creating plugin adapters from `IConnectorPlugin` implementations - `FeedPluginAdapter` (`src/Concelier/StellaOps.Concelier.Plugin.Unified/FeedPluginAdapter.cs`) - unified adapter wrapping plugin connectors - `ConnectorRegistrationService` (`src/Concelier/__Libraries/StellaOps.Concelier.Core/Orchestration/ConnectorRegistrationService.cs`) - DI-based plugin discovery and registration - Each connector has an `IConnectorPlugin` implementation (e.g., `NvdConnectorPlugin`, `GhsaConnectorPlugin`, `VmwareConnectorPlugin`, etc.) - **Interfaces**: `IConnectorPlugin`, `IFeedConnector`, `IConnectorRegistrationService` - **Source**: Feature matrix scan ## E2E Test Plan - [ ] Verify plugin discovery: all `IConnectorPlugin` implementations are found via DI at startup - [ ] Verify `FeedPluginAdapterFactory` creates adapters for each discovered plugin - [ ] Verify isolated loading: plugin assemblies load in isolated `AssemblyLoadContext` without leaking into the host - [ ] Verify version attributes: query a loaded plugin and confirm `StellaPluginVersion` metadata is accessible - [ ] Verify registration service: `ConnectorRegistrationService` exposes metadata for all registered plugins