====== EasyMorph Gateway ====== EasyMorph Gateway is an optional, complementary cloud service for receiving incoming HTTP webhooks from external and cloud applications and processing them with EasyMorph Hub tasks. The Gateway enables real-time event-driven integration between cloud applications and systems outside of the corporate security perimeter with internal systems and applications via EasyMorph Hub tasks. Webhook URLs are created and managed from [[server:start|EasyMorph Hub]]. Incoming webhook messages are processed by EasyMorph Hub tasks in real-time. When a message arrives, the Gateway immediately triggers a designated Hub task that imports the incoming message (HTTP request) from the Gateway using the [[transformations:incomingwebhooks|Incoming webhooks]] action and processes it. Alternatively, messages on the Gateway can be retrieved on schedule from an EasyMorph Hub task. {{:gateway:gateway.png?nolink|}} =====Configuration===== The Gateway connection, endpoints, and configurations are managed through the EasyMorph Hub on tab "Gateway". The tab is only available to Hub administrators. For more detailed instructions on Gateway configuration please read this article: [[https://community.easymorph.com/t/how-to-configure-a-connection-to-easymorph-gateway/2945| How to configure a connection to EasyMorph Gateway]]. \\ =====End-to-end encryption===== All incoming messages that are stored in EasyMorph Gateway are asymmetrically encrypted using a public/private key pair. The keys are managed on EasyMorph Hub. The private keys are stored on EasyMorph Hub in an encrypted vault. Webhook messages arrive at EasyMorph Hub encrypted and are decrypted only in the Hub when processed in a task. \\ =====Authentication===== ===Webhook endpoint (URL) authentication=== For any HTTP request sent to the public webhook URL, the Gateway always returns "OK" (200). Custom webhook authentication protocols that require returning a particular token or signature in response are not supported. ===Request authentication=== Requests can be protected by adding authentication using a secret passed via a request header or query parameter. In this case, any request that doesn't have the specified secret will be rejected with the response code 401 "Unauthorized". \\ =====Integration===== ===Zapier=== EasyMorph Gateway has a Zapier connector that can be used in zaps to process events triggered by any Zapier trigger. See this article for more details: [[https://community.easymorph.com/t/how-to-use-zapier-with-easymorph-gateway/2962|How to use Zapier with EasyMorph Gateway]]. ===Power Automate=== See this article for more details: [[https://community.easymorph.com/t/how-to-use-microsoft-power-automate-with-easymorph-gateway/3035| How to use Microsoft Power Automate with EasyMorph Gateway]]. \\ =====Pricing===== The Gateway is an optional service that is priced separately from EasyMorph Hub. See the full pricing here: [[https://easymorph.com/buy.html#gateway-pricing|Pricing: EasyMorph Gateway]] \\ =====Miscellaneous===== ===Technical specifications=== ^ Description ^ Value ^ Notes ^ | Average task triggering latency | ~3 seconds | The time required to trigger a Hub task after a webhook message is received. | | Max payload size | 300KB | The max size of the incoming HTTP request body ((For large data objects use webhooks as a notification mechanism and retrieve large objects using an API request. See also [[transformations:webrequest|action "Web request"]])). | | Max throughput | up to 100 requests/second | If higher throughput is necessary, please contact technical support. | | Max message processing time | 24 hours | If a message was retrieved by Hub for processing but wasn't processed in that time it will be returned to the queue.| | Max messages in batch | 10 | The number of messages a Hub task can retrieve and process in one run. | ===HEAD requests=== For any request made with the HTTP HEAD method, the Gateway always returns "OK" (200) without storing the message in the queue.