NuGet ยท nuget

Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins

Core Feature for Plugins for Eltheon Framework

Install

Install-Kommandos

dotnet add package Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins --version 2.9.9
<PackageReference Include="Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins" Version="2.9.9" />
paket add Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins --version 2.9.9
Install-Package Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins -Version 2.9.9

README

Vorschau

Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins

Overview

This feature contains both the legacy v1 plugin runtime and the canonical v2 host runtime. For new work in this repository, treat v2/ as the source of truth.

Canonical baseline: IEltheonPlugin, PluginManifest, PluginBase, AddEltheonPluginHost(...), PluginManager under v2/, and the PackTool-based .elpkg flow.

Legacy baseline: IPlugin, PluginLoader, and PluginManager under v1/. Keep it only for historical compatibility and upgrade work.

Canonical v2 Elements

  • Extensions/PluginHostServiceCollectionExtensions.cs registers the host runtime.
  • Manager/PluginManager.cs activates manifest-driven plugins and applies plugin infrastructure.
  • Models/PluginDescriptor.cs holds runtime state, manifests, navigation, permissions, and database metadata.
  • UsePluginStaticFiles(...), application parts, navigation providers, permission providers, and plugin DB wiring are part of the active v2 path.

The template host discovers v2 plugins from the verified plugins-space snapshot. Registry state and valid manifests in that snapshot are reconciled on every load. Discovery diagnostics expose only aggregate counts for unrecognized legacy content. Install and remove requests are scheduled as persistent Runtime boot tasks; the task handlers write package contents into the plugins Storage space so the next materialized snapshot becomes authoritative.

Legacy v1 Elements

  • v1/Loader/PluginLoader.cs
  • v1/Manager/PluginManager.cs
  • v1/Interfaces/IPlugin.cs

Canonical Usage

builder.Services.AddEltheonPluginHost(GlobalConfig.Instance.PluginPath);
  1. Use Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.Abstractions and .SDK for plugin contracts.
  2. Use Plugins/Redeon.Eltheon.TestPlugin as the current reference implementation.
  3. Use the PackTool for .elpkg packaging.

Diagnostics

Enable Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins logging to trace activation, manifest loading, DbContext wiring, and post-build lifecycle execution.

Canonical Events

AddEltheonPluginHost(...) registers plugin lifecycle event metadata and emits events from the v2 manager after successful state changes. Event payloads are limited to safe identifiers, names, versions, status values, uninstall mode, validation stage, and reason codes.

  • Eltheon.Plugins.PluginInstallStarted
  • Eltheon.Plugins.PluginInstalled
  • Eltheon.Plugins.PluginInstallFailed
  • Eltheon.Plugins.PackageValidationFailed
  • Eltheon.Plugins.PluginActivated
  • Eltheon.Plugins.PluginDeactivated
  • Eltheon.Plugins.PluginRemoved

Plugin lifecycle events are Critical, InternalOnly, audit-relevant, and security-relevant by default. Set PluginEventOptions.EnableEvents = false through AddEltheonPluginHost(..., configureEvents: options => options.EnableEvents = false) to opt out.

For repository-level guidance, prefer:

  • docs/plugins/current-plugin-architecture.md
  • docs/plugins/legacy-to-v2-upgrade.md