Plugin SystemPlugin Manifest

Plugin Manifest Reference

The manifest.json file defines your plugin’s metadata, configuration, permissions, and integration with NetPad’s modern node system. This page details every field, validation rule, and best practice for authoring a manifest.

Example manifest.json

{
  "name": "my-custom-node",
  "version": "1.0.0",
  "displayName": "My Custom Node",
  "description": "A custom node for my workflow",
  "author": "developer@company.com",
  "license": "MIT",
  "keywords": ["api", "integration", "custom"],
  "category": "integration",
  "scope": "private",
  "permissions": {
    "network": ["api.example.com"],
    "environment": ["NODE_ENV"],
    "files": []
  },
  "nodeConfig": {
    "gradientColors": ["#FF5722", "#FF8A65"],
    "primaryColor": "#FF5722",
    "badgeText": "CUSTOM",
    "description": "Custom integration node",
    "category": "integration"
  },
  "dependencies": {
    "axios": "^1.0.0"
  },
  "files": {
    "runner": "./runner.js",
    "shape": "./shape.js",
    "icon": "./icon.svg"
  }
}

Manifest Fields

FieldTypeRequiredDescription
namestringYesPlugin identifier (kebab-case, unique)
versionstringYesSemantic version (e.g. 1.0.0)
displayNamestringYesHuman-readable name
descriptionstringYesShort description
authorstringYesAuthor email
licensestringNoLicense type (default: MIT)
keywordsstring[]NoSearch keywords
categorystringYesPlugin category (see below)
scopestringYesprivate, org, or public
permissionsobjectNoSecurity permissions (see below)
nodeConfigobjectYesVisual config for ModernNodeBase
dependenciesobjectNoNPM dependencies
filesobjectYesFile paths for runner, shape, icon
homepagestringNoPlugin homepage URL
repositorystringNoSource repository URL
engineobjectNoNetPad version requirements

Categories

  • ai, data, database, integration, communication, utility, analytics, display, execution, custom

Permissions

Declare what your plugin needs:

  • network: List of allowed domains for HTTP/API access
  • environment: List of allowed environment variables
  • files: List of allowed file paths
  • database: Database access (future)
  • external_api: External API calls (future)

Example:

"permissions": {
  "network": ["api.example.com"],
  "environment": ["NODE_ENV"],
  "files": []
}

nodeConfig (Visuals)

Configure your node’s appearance in the NetPad editor:

  • gradientColors: Array of two hex colors for background
  • primaryColor: Main accent color
  • badgeText: Short badge label (max 10 chars)
  • description: Node description
  • category: Node category

Example:

"nodeConfig": {
  "gradientColors": ["#FF5722", "#FF8A65"],
  "primaryColor": "#FF5722",
  "badgeText": "CUSTOM",
  "description": "Custom integration node",
  "category": "integration"
}

files

  • runner: Main logic file (required)
  • shape: Node shape/visual (required)
  • icon: SVG icon (required)

Validation Rules

  • All required fields must be present
  • name must be kebab-case, unique, and not reserved
  • version must follow semantic versioning
  • category and scope must be valid values
  • permissions must only declare allowed keys
  • nodeConfig.gradientColors must be two valid hex colors
  • badgeText should be ≤ 10 characters

Further Reading

For more, see the Plugin Sprint Plan.