Skip to content

Plugin Manifest Format

Plugins are defined by a JSON manifest that describes authentication, capabilities, and settings.

Manifest Structure

json
{
  "slug": "shopee-connector",
  "name": "Shopee API Connector",
  "emoji": "🛒",
  "description": "Connect to Shopee Open Platform API",
  "type": "api_connector",
  "base_url": "https://partner.shopeemobile.com",
  "auth": {
    "type": "api_key",
    "header": "Authorization",
    "prefix": "",
    "key_field": "api_key"
  },
  "setting_definitions": [...],
  "capabilities": [...]
}

Auth Types

TypeFieldsHeader Format
api_keyheader, prefix, key_field{header}: {prefix}{key_value}
bearertoken_fieldAuthorization: Bearer {token}
basicusername_field, password_fieldAuthorization: Basic {base64}

Setting Definitions

Each setting defines a field in the configuration form:

json
{
  "key": "api_key",
  "label": "API Key",
  "type": "password",
  "required": true,
  "description": "Your Shopee Partner API key"
}
FieldTypeDescription
keystringUnique identifier for this setting
labelstringDisplay label in the UI
typestringstring, password, integer, or boolean
requiredbooleanWhether the field must be filled
descriptionstringHelp text shown below the field
defaultstringDefault value

Fields with type: "password" are encrypted at rest. All other types are stored as plain JSON.

Capabilities

Each capability defines an API endpoint the plugin can call:

json
{
  "id": "list_products",
  "name": "List Products",
  "description": "Get a list of products from the shop",
  "method": "GET",
  "endpoint": "/api/v2/product/get_item_list",
  "parameters": [
    {
      "key": "offset",
      "label": "Offset",
      "type": "integer",
      "required": false,
      "default": "0"
    },
    {
      "key": "page_size",
      "label": "Page Size",
      "type": "integer",
      "required": false,
      "default": "20"
    }
  ]
}
FieldTypeDescription
idstringUnique capability identifier
namestringDisplay name
descriptionstringWhat this capability does
methodstringHTTP method (GET, POST, PUT, DELETE)
endpointstringURL path (appended to base_url)
parametersarrayInput parameters for this capability

URL Variables

The endpoint and base_url support variable substitution using {variable_name} syntax. Variables are resolved from (in order):

  1. Plugin settings
  2. Decrypted credentials
  3. Execution parameters

Execution Statuses

StatusDescription
successHTTP request completed with 2xx status
errorHTTP request returned 4xx/5xx or execution failed
timeoutRequest exceeded the 30-second timeout
pendingExecution has been queued but not yet started

Response Handling

  • Responses are parsed as JSON when possible
  • Response data is truncated to 2000 characters for storage in execution logs
  • Sensitive fields (containing "password", "key", "secret", "token") are masked in logs

Built by HelixNode