PanelDOCSv1.0.0

plugin.json

Every field of a plugin's plugin.json, for marketplace packages (manifest 2) and local trusted plugins.

Every plugin has a plugin.json at the top of its folder. HF Panel reads it strictly: an unknown field, a wrong type or a value that breaks a rule below makes the plugin invalid, with the reason shown.

Fields

Field Manifest 2 Local (1) What it is
manifest 2 absent or 1 the format
id required required 2–40 lowercase letters, digits or -; the folder's name once installed and the address of its pages
name required required up to 60 characters
version required required for example 2.1.0 (letters, digits, ., +, -, up to 30 characters)
description optional optional up to 300 characters
publisher required not allowed who makes it, up to 100 characters
author not allowed optional up to 100 characters
homepage optional optional an https:// address
min_panel required optional the oldest HF Panel version it works with; a plugin for a newer panel is refused
permissions optional not allowed what it may do, see Plugin permissions (up to 60)
hooks optional optional event name → the path of a script in the plugin (the events); in manifest 2 each event needs its events:<event> permission
ui optional not allowed up to 10 pages at extension points, see below
menu not allowed optional up to 10 menu entries: role (admin, reseller or client), label, group, path
pages with ui or menu with menu the folder of the plugin's pages

Texts may not hold control characters or < >. Every path is relative to the plugin's folder: letters, digits, ., _ and - in each part, never .., never starting with /, . or -.

ui entries

Field What it is
point admin.menu, reseller.menu, client.menu, client.account-card or admin.account-tab; needs the permission ui:<point>
label up to 40 characters: the menu entry, card title or Manage menu entry
group for a menu point, the menu heading to put it under (a new heading when the menu has none of that name, Plugins when empty)
path the page inside the pages folder, index.html when empty

How the pages are shown and how they talk to the panel: Pages and the bridge.

Not yet

A long-running service of a plugin (service) is not part of manifest 2 yet: a plugin.json with it is refused.