Appearance
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
| Type | Fields | Header Format |
|---|---|---|
api_key | header, prefix, key_field | {header}: {prefix}{key_value} |
bearer | token_field | Authorization: Bearer {token} |
basic | username_field, password_field | Authorization: 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"
}| Field | Type | Description |
|---|---|---|
key | string | Unique identifier for this setting |
label | string | Display label in the UI |
type | string | string, password, integer, or boolean |
required | boolean | Whether the field must be filled |
description | string | Help text shown below the field |
default | string | Default 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"
}
]
}| Field | Type | Description |
|---|---|---|
id | string | Unique capability identifier |
name | string | Display name |
description | string | What this capability does |
method | string | HTTP method (GET, POST, PUT, DELETE) |
endpoint | string | URL path (appended to base_url) |
parameters | array | Input parameters for this capability |
URL Variables
The endpoint and base_url support variable substitution using {variable_name} syntax. Variables are resolved from (in order):
- Plugin settings
- Decrypted credentials
- Execution parameters
Execution Statuses
| Status | Description |
|---|---|
success | HTTP request completed with 2xx status |
error | HTTP request returned 4xx/5xx or execution failed |
timeout | Request exceeded the 30-second timeout |
pending | Execution 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