Skip to content
  • Frank Naegler's avatar
    [FEATURE] Outgoing Webhooks for TYPO3 · 26229cba
    Frank Naegler authored
    
    
    A webhook is an automated message sent from one application
    to another via HTTP. Most modern web applications have the ability
    to communicate either via outgoing or incoming webhooks.
    This way of communication allows application users to integrate
    multiple systems without writing code (so-called no-code/low-code
    integrations).
    
    TYPO3 provides the incoming webhooks part via the system extension
    "reactions". This feature now allows configuring
    outgoing webhooks in the TYPO3 backend - completing the round trip.
    
    A new backend module is added called "Webhooks" where any
    administrative user can create a webhook. At its' core a webhook
    consists of a trigger (when something should happen) and a
    target URL (what should happen). Every time the webhook is triggered,
    an HTTP request is sent to the target URL. With this feature,
    the request can be either a POST or a GET request. POST requests
    commonly contain data, and GET requests can trigger actions
    in third-party systems.
    
    The webhooks extension provides various triggers as examples - for
    example a trigger when a page is created or updated, or a file is added
    or removed - however, additional triggers can be provided in the future
    and custom triggers can be written by extension authors and project
    developers.
    
    The backend module also enforces the setting of a secret for each webhook
    which can be used to verify that the webhook request originated from the
    TYPO3 system and its' payload has not been modified in the meantime.
    
    Under the hood, the webhooks extension uses the TYPO3 queue and
    therefore the Symfony messenger component, which provides a flexible
    and extensible way for handling messages either synchronously or
    asynchronously.
    
    Co-authored-by: default avatarOliver Bartsch <bo@cedev.de>
    Co-authored-by: default avatarSusanne Moog <look@susi.dev>
    Co-authored-by: default avatarBenni Mack <benni@typo3.org>
    Resolves: #99629
    Releases: main
    Change-Id: I44eac0f1bd77cb2cbab9ebe3963c849ab366d538
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77362
    
    
    Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
    Tested-by: default avatarcore-ci <typo3@b13.com>
    Tested-by: default avatarBenni Mack <benni@typo3.org>
    Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
    Tested-by: default avatarOliver Bartsch <bo@cedev.de>
    Reviewed-by: default avatarBenni Mack <benni@typo3.org>
    Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
    26229cba