Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool
CLI zum Packen und Prüfen von Manifest-v3-Plugins als .elpkg.
Manifest
plugin pack verlangt manifest/plugin.manifest.json mit manifestVersion = 3. Reine manifest.json-Projekte werden abgelehnt. Der Parameter --manifest-v3 wird aus Kompatibilitätsgründen akzeptiert, hat aber keine Wirkung mehr.
Schnellstart
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- `
plugin pack `
--project ./MyPlugin/MyPlugin.csproj `
--output ./artifacts/plugins
Weitere Befehle:
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin validate --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg --strict
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin inspect --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg --output json
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin policy evaluate --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg --environment production
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin migrations validate --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin observability inspect --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin sign --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg --certificate ./signing-cert.pem --key-id project.release --key-env ELTHEON_PLUGIN_SIGNING_KEY
dotnet run --project Redeon.SuperSiteEngineCore.Web.Eltheon.Plugins.PackTool -- plugin verify --package ./artifacts/plugins/vendor.plugin.1.0.0.elpkg
plugin sign verwendet ausschließlich RSA-PSS-SHA256. Der private PEM-Schlüssel wird über --key oder --key-env eingelesen und weder in das Paket noch in Logs geschrieben. Pakete enthalten nur die abgesetzte Signatur, das öffentliche Zertifikat und den kanonischen Inhaltsdigest.
Package Layout
The pack command:
- validates the source Manifest v3 contract,
- builds or reuses the project publish output,
- stages runtime files below
lib/{targetFramework}/, - stages declared assets below
assets/wwwroot/, - stages localization below
resources/{culture}/, - stages provider migrations below
migrations/{provider}/, - stages
README.mdasdocs/README.md, - writes the canonical
integrity/package.sha256, - validates the finished package again.
Validation rejects unsafe paths, missing entry assemblies/types, missing declared migration artifacts, invalid resources, scripts, invalid integrity metadata, and manipulated signatures. Policy, migration, observability, and signature verification inspect package content only and do not mutate a host or database.