Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

graphql.ini [GraphQLWebhooks]

The settings of [GraphQLWebhooks] in graphql.ini: EndpointList, Timeout, MaxAttempts, RetryBackoff, MaxBackoff, BatchSize, LogMaxBytes

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/examples/ini-settings/graphql/GraphQLWebhooks.md

On this page

graphql.ini [GraphQLWebhooks]

The block [GraphQLWebhooks] of settings/graphql.ini, with 7 setting(s).

Never edit settings/graphql.ini itself: an update replaces it. Put the settings you change in an override, which wins over the shipped file:

  • settings/override/graphql.ini.append.php for every siteaccess,
  • settings/siteaccess/<siteaccess>/graphql.ini.append.php for one siteaccess,
  • extension/<extension>/settings/graphql.ini.append.php in an extension (read when the extension is active).

EndpointList

The webhooks: every event of the journal an end point asks for is POSTed to it as JSON, signed with HMAC-SHA-256
(X-Exponential-Signature: sha256=<hex of HMAC(secret, X-Exponential-Timestamp + "." + body)>), by the cronjob part
graphqlwebhooks (also in the frequent group) or ./console exp:graphql:webhooks --deliver; never by the request that
changed the content. Add them with ./console exp:graphql:webhooks --add=<name> --url=https://... --apply, or in
Setup > GraphQL: both write settings/override/graphql.ini.append.php and keep the signing secret in the secret store.

The end points, each with its block [GraphQLWebhook_<name>]:

[GraphQLWebhook_shop]
URL=https://shop.example.com/hooks/exponential

the events it wants: publish, update, trash, delete, move, hide, reveal, mutation; none: every event

Events[]=publish
Events[]=update

only content below the root node of these siteaccesses, in their languages; none: every siteaccess

SiteAccessList[]=eng

only these classes; none: every class

ClassList[]=article

only content at or below these nodes; none: the whole tree

SubtreeList[]=2

the NAME of the signing secret in the secret store (Setup > Secrets), or env:VARIABLE; the value is never written

into a settings file. Default: graphql.webhook.<name>

Secret=graphql.webhook.shop

event (the default): the event and its ids; query: the answer of a persisted query (Query, its name or SHA-256)

with the variables objectId, nodeId, version, language and event, run as QueryUser (a login; default anonymous)

Payload=event
Query=
QueryUser=

disabled keeps the end point but sends it nothing

Enabled=enabled

Default: an empty list.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
# an empty "EndpointList[]" first replaces the shipped list; without it the items are added
EndpointList[]
*/ ?>

Timeout

Seconds an end point has to answer; a 2xx answer delivers, anything else is tried again.

Default: 10.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
Timeout=10
*/ ?>

MaxAttempts

Tries per delivery; then it is kept in var/<site>/graphql/webhooks/failed/ and the delivery log says so.

Default: 8.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
MaxAttempts=8
*/ ?>

RetryBackoff

Seconds before the second try, doubled for each try after it, at most MaxBackoff.

Default: 30.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
RetryBackoff=30
*/ ?>

MaxBackoff

Default: 3600.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
MaxBackoff=3600
*/ ?>

BatchSize

Deliveries sent per run at most.

Default: 200.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
BatchSize=200
*/ ?>

LogMaxBytes

The delivery log (var/<site>/graphql/webhooks/deliveries.jsonl) is kept as deliveries.1.jsonl past this size.

Default: 1M.

<?php /* #?ini charset="utf-8"?
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
LogMaxBytes=1M
*/ ?>

Generated by ./console exp:help:examples from settings/graphql.ini. Do not edit this page: change the source and generate again (how). Free documentation: GFDL 1.3 or later.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x