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

1.8 KiB

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