{
"type": "object",
"properties": {
"html_content": {
"type": "string",
"description": "Required: The HTML code to deploy. Include {{DATA_URL}} placeholder if your app needs to fetch external data."
},
"sdk_file_id": {
"type": "string",
"description": "Supply data to your app: 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 app (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)."
},
"collectionId": {
"type": "string",
"description": "REQUIRED: Collection ID to store the deployed HTML file. In workflows, declare a filestorage collection resource in WORKFLOW_RESOURCES (e.g., myWebApps: { type: \"collection\", collectionType: \"filestorage\" }), bind it via workflow_bind_resources, then use {{resource.myWebApps}} here."
},
"output_filename": {
"type": "string",
"default": "web_app.html",
"description": "Optional: Name for the output HTML file (default: \"web_app.html\")"
},
"file_links_expire_in_days": {
"oneOf": [
{
"type": "number"
},
{
"type": "string",
"const": "never"
}
],
"default": 7,
"description": "Number of days before the HTML URL expires (1-30), or \"never\" for a public URL with no expiration (default: 7)"
}
},
"required": [
"html_content",
"collectionId"
]
}