Skip to content

Improve plugin/package management lifecycle, validation, and runtime metadata APIs#17

Merged
ReneSchwarzer merged 1 commit intodevelopfrom
copilot/improve-plugin-management-system
Apr 23, 2026
Merged

Improve plugin/package management lifecycle, validation, and runtime metadata APIs#17
ReneSchwarzer merged 1 commit intodevelopfrom
copilot/improve-plugin-management-system

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 23, 2026

Summary

This PR enhances the WebExpress plugin/package management foundation to support dynamic management workflows needed by web-based administration.

Changes

  • Added package lifecycle APIs to IPackageManager and PackageManager:
    • UploadPackage
    • InstallPackage
    • ActivatePackage
    • DeactivatePackage
    • UpdatePackage
    • UninstallPackage
    • ValidatePackage
    • GetPackages / GetPackage
  • Added operation/validation result models:
    • PackageOperationResult
    • PackageValidationResult
  • Extended package metadata/spec with dependencies:
    • PackageItem.Dependencies
    • PackageItemSpec.Dependencies
  • Improved package update/change detection to include dependency changes.
  • Hardened package extraction against unsafe archive paths (zip-slip style traversal) and now safely overwrites extracted files.
  • Secured package spec deserialization using safe XML reader settings (DTD prohibited).
  • Added optional SHA-256 package hash verification in validation/install flows.
  • Added package dependency/version compatibility checks during activation.
  • Extended plugin management visibility for runtime status/dependencies:
    • IPluginManager.GetPluginRuntimeInfos()
    • PluginRuntimeInfo
    • PluginRuntimeState
  • Updated package builder to preserve package dependency declarations in generated .spec.
  • Added/extended tests for:
    • package lifecycle operations
    • invalid package extension validation
    • update id mismatch rejection
    • SHA-256 verification
    • plugin runtime metadata exposure

Validation

  • dotnet build src/WebExpress.WebCore.sln
  • dotnet test src/WebExpress.WebCore.Test/WebExpress.WebCore.Test.csproj --no-build ✅ (941 passed)
  • Parallel validation:
    • Code Review ✅ (no comments)
    • CodeQL ✅ (0 alerts)

Notes

  • The specific WebApp settings page class WebExpress.WebApp.WWW.Settings.System.Plugin is not in this repository; these changes provide the backend management APIs and metadata needed for that UI integration.

@ReneSchwarzer ReneSchwarzer merged commit 842d3db into develop Apr 23, 2026
2 checks passed
@ReneSchwarzer ReneSchwarzer deleted the copilot/improve-plugin-management-system branch April 23, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants