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.6
<PackageReference Include="Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins" Version="2.9.6" />
paket add Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins --version 2.9.6
Install-Package Redeon.SuperSiteEngineCore.Web.Eltheon.Core.Features.Plugins -Version 2.9.6

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.

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