plugin

Install plugin

Install a new plugin. The request body is a pluginInfo.json structure with branch and sha fields added to specify which branch and commit to install.

privacyAccepted (optional, null allowed) is the privacy block the caller showed the operator, the same field POST /plugin/{RepoName}/upgrade takes. When it matches the block in the cloned copy (sends, collects, sensors, remoteAccess, systemChanges, closedCode) that block is recorded as accepted in config/pluginPrivacyAccepted.json; when it does not -- the listing is behind the repository, or the selected version pins an older commit -- the install still goes ahead and nothing is recorded, so the next update check reports privacyChanged and the Plugins page shows the installed block. A body without the field records nothing.

post/api/plugin

Request body

repoNamestring
srcURLstring
branchstring
shastring
privacyAcceptedobject nullable

The privacy block the caller showed the operator (the privacy object of pluginInfo.json), or null when the dialog said "no disclosure". Recorded as accepted only if it matches the cloned copy's block in the material keys (sends, collects, sensors, remoteAccess, systemChanges, closedCode). Omit to record nothing.

dependencyPrivacyAcceptedobject

repoName -> the privacy block the dialog showed for each dependency plugin this install pulls in (null = no disclosure). Each is recorded the same way as privacyAccepted when that plugin is installed as a dependency.

Response

Plugin installed

object required

Changes