Skip to content
Snippets Groups Projects
Commit 26229cba authored by Frank Naegler's avatar Frank Naegler Committed by Stefan Bürk
Browse files

[FEATURE] Outgoing Webhooks for TYPO3


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>
parent 0930a80f
Showing
with 1070 additions and 72 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment