{"flow":{"id":59,"summary":"SQS flow with preprocessor template","versions":[214,227,228,234,243,265,271],"created_by":"dieriba.pro916","created_at":"2025-02-11T13:03:22.578Z","votes":0,"approved":true,"apps":["windmill"],"value":{"modules":[],"preprocessor_module":{"id":"preprocessor","value":{"tag":"","type":"rawscript","content":"/**\n * General Trigger Preprocessor\n *\n * ⚠️ This function runs BEFORE the main function.\n *\n * It processes raw trigger data (e.g., MQTT, HTTP, SQS) before passing it to main().\n * Common tasks:\n * - Convert binary payloads to string/JSON\n * - Extract metadata\n * - Filter messages\n * - Add timestamps/context\n *\n * The returned object determines main() parameters:\n * - {a: 1, b: 2} → main(a, b)\n * - {msg} → main(msg)\n *\n * @param event - Trigger data (e.g., MQTT, HTTP, SQS)\n * @returns Processed data for main()\n */\n\nexport async function preprocessor(\n  event: {\n    kind: 'sqs',\n    msg: string\n    queue_url: string,\n    message_id?: string,\n    receipt_handle?: string,\n    attributes: Record<string, string>,\n    message_attributes?: Record<string, {\n      string_value?: string,\n      data_type: string\n    }>\n  },\n) {\n  if (event.kind === 'sqs') {\n    try {\n      // We assume the message is a JSON value\n      const data = JSON.parse(event.msg);\n\n      return {\n        msg: event.msg,\n        data,\n        message_attributes: event.message_attributes\n      };\n    } catch (error) {\n      throw new Error(\"Failed to parse SQS message as JSON\");\n    }\n  }\n  \n  throw new Error(`Expected SQS trigger kind, got: ${event.kind}`);\n}","language":"bun","input_transforms":{"event":{"type":"static"}}}}},"schema":{"type":"object","order":["msg","data","message_attributes"],"$schema":"https://json-schema.org/draft/2020-12/schema","required":["msg","data"],"properties":{"msg":{"type":"string","default":"","description":"Raw SQS message payload."},"data":{"type":"object","description":"Parsed JSON data from the SQS message."},"message_attributes":{"type":"object","description":"User-defined attributes of the SQS message"}}},"description":"","recording":null,"vcreated_at":"2025-05-08T13:25:19.051Z","vcreated_by":"hugo697","comments":[]}}