{
"type": "object",
"properties": {
"html_content": {
"type": "string",
"description": "Required: The Chart.js HTML code to deploy. Include {{DATA_URL}} placeholder if your chart needs to fetch external data."
},
"collectionId": {
"type": "string",
"description": "REQUIRED: Collection ID to store the deployed chart file. In workflows, declare a filestorage collection resource in WORKFLOW_RESOURCES (e.g., myCharts: { type: \"collection\", collectionType: \"filestorage\" }), bind it via workflow_bind_resources, then use {{resource.myCharts}} here."
},
"sdk_file_id": {
"type": "string",
"description": "Supply data to your chart: File ID from pf.files.writeFile() to resolve for {{DATA_URL}}. Format: automationId/runId/nodeId/filename. NOTE: The resolved S3 URL expires after approximately 15 minutes, so the deployed HTML should fetch the data immediately when loaded."
},
"filestorage_id": {
"type": "string",
"description": "Supply data to your chart (preferred): File ID from filestorage MCP tool response to resolve for {{DATA_URL}}. Expiration depends on how the file was uploaded (can range from 1 minute to public/never)."
},
"output_filename": {
"type": "string",
"default": "chart.html",
"description": "Optional: Name for the output chart file (default: \"chart.html\")"
},
"file_links_expire_in_days": {
"oneOf": [
{
"type": "number"
},
{
"type": "string",
"const": "never"
}
],
"default": 7,
"description": "Number of days before the chart URL expires (1-30), or \"never\" for a public URL with no expiration (default: 7)"
}
},
"required": [
"html_content",
"collectionId"
]
}