Files
git.stella-ops.org/docs/features/unchecked/concelier/plugin-system-with-di-signing-and-version-attributes.md

28 lines
1.8 KiB
Markdown

# 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