Skip to content

[Improvement] User-supplied install config #9

@adam-alchemy

Description

@adam-alchemy
  • Currently the spec supports dependencies and injected hooks. These address two problems with using plugin manifests alone:
    • Dependencies address “plugin incompatibilities”, where a plugin needs external functionality that it doesn’t want to hard-code. Right now this is only used for providing owner/root validation functions for sensitive plugin functions.
    • Injected hooks address “plugin permissions” by providing a way to apply protective checks to plugins as they’re installed, providing guard rails that “limit the blast radius” of malicious plugins. This can’t be done via regular plugin hooks for 2 reasons:
      • Manifests must be static in their contents, which means you would need a different manifest to apply a “permission” hook to different plugins. And since manifests are static, this means re-compiling the permissions plugin for each other plugin it is providing checks for.
      • Hooks must be applied after the plugin is installed, and unfortunately onInstall would allow a malicious plugin to perform actions before its permissions plugin is installed.
  • These are very opinionated usages, and the specifics of how they are used bleeds into the standard itself. If we can generalize “user supplied install configs” as a mechanism to supplement or override manifest fields, we can reduce spec complexity.

Metadata

Metadata

Type

No type

Projects

Status

2. Reference implementation

Relationships

None yet

Development

No branches or pull requests

Issue actions