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.phpfor every siteaccess,settings/siteaccess/<siteaccess>/graphql.ini.append.phpfor one siteaccess,extension/<extension>/settings/graphql.ini.append.phpin 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/exponentialthe events it wants: publish, update, trash, delete, move, hide, reveal, mutation; none: every event
Events[]=publish
Events[]=updateonly 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.
# 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.
# 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.
# 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.
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
RetryBackoff=30
*/ ?>MaxBackoff
Default: 3600.
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
MaxBackoff=3600
*/ ?>BatchSize
Deliveries sent per run at most.
Default: 200.
# 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.
# settings/override/graphql.ini.append.php
[GraphQLWebhooks]
LogMaxBytes=1M
*/ ?>Related
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.