Skip to content

Add doc samples for verified sources batch 4 (32 providers) - #73

Merged
garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batch-4
Oct 22, 2026
Merged

garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batch-4

Conversation

@garethx

@garethx garethx commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Requested by Gareth · project thread

Before: hookdeck/webhook-registry#106 (verified sources batch 4, merged) added 43 provider rows and exported doc examples for 32 of them to the registry's samples-doc/ tree. None of the 32 had a directory here.

After: 32 new provider directories with 391 doc-sourced samples. providers.json goes from 210 to 242 providers. The other 11 rows have no published example body, so they get no directory: emporix, mercury, moonpay, outreach, posthog, salesloft, savvycal, tawk-to, trigger-dev, truework and yousign. No existing file is changed. This touches only new directories, so it doesn't conflict with #72 (batch 3); with both merged the count is 272.

Provider Samples Version dir topic_identifier
assemblyai 2 latest null (no discriminator)
cartesia 2 latest type
confluence 1 latest event
coterie 2 latest null (no discriminator)
cover-genius 6 latest event
documenso 14 latest event
footprint 9 latest event_kind
foursquare 7 latest eventType
honeybadger 12 latest event
increase 2 latest category
lokalise 26 latest event
medusa 8 latest type
middesk 8 latest type
mistral 3 latest event
northflank 1 latest event
oncehub 1 v2 type
paysafe 14 latest eventName
printify 10 latest type
recruitee 7 latest event_type
sendbird 19 latest category
shopware 1 latest data.event
shortcut 1 v1 null (composed: actions[].entity_type + . + actions[].action)
signnow 2 latest meta.event
stigg 15 latest type
storyblok 27 latest action
stream 43 latest type
todoist 1 10 event_name
unit 115 latest list: data[].type, data.type
wave 16 latest event_type
workable 7 latest event_type
xendit 8 latest event
zoho-sign 1 latest notifications.operation_type
Total 391

How: I copied samples-doc/providers/<p>/ from webhook-registry main (98fcbd65) into providers/, the same way #70 and #72 did. All but one sample file is byte-identical to the export, and one index.json differs. Both changes are listed first below. Every other topic_identifier equals the registry row's discriminator path. I checked each one with a port of resolveTopic against every sample, and every non-null one resolves all of its provider's samples. Each file carries source.type: vendor-documentation and its page URL, and each version is marked sourced_via: docs. yarn compile passes (210 → 242 providers, compiled topic count equals file count for all 32). yarn test passes 16/16.

Worth a look:

  • unit uses the README's list form. The registry's carrier is data[].type, because a delivery's data is an array of events (batched up to 64). Ten doc examples show data as a single object instead: assignment.*, cardFraudCase.*, repayment.* and wireDrawdown.created. The registry row's carrier_note says to read data.type in that case. The export's data[].type resolved 105 of 115 samples. ["data[].type", "data.type"] resolves all 115. The single-object bodies may be a docs artifact rather than a second wire shape, but they're kept as published.

  • northflank's sample is renamed to its wire value (separate commit, 33b920b). The export named it trigger:build:start, which is the subscription key from the create-notification-integration API. The body's event and the X-Northflank-Notification-Integration-Event-Type header both carry build:start, and the registry's join_normalization says the wire value drops the trigger: prefix. With the old topic, event resolved 0 of 1 samples. The topic is now build:start and the file is build.start.json, following Rubrik in Rename Rubrik Backup sample to its wire class value #71. The body is unchanged. The registry export still writes the prefixed name, so a re-export would bring it back unless the exporter applies the normalization. The commit is easy to drop if you'd rather keep the export as is.

  • null rows: assemblyai and coterie have no event field (the registry records the discriminator as absent). AssemblyAI's two shapes are told apart by transcript_id vs session_id. Coterie's application, quote and policy bodies are told apart by key presence. shortcut is composed (<entity_type>.<action> from actions[]), following the check, jfrog and taiga precedent from Add 228 doc-sourced samples for verified-sources batch 3 (30 providers) #72.

  • Versions taken from the payload: oncehub v2 (body api_version), todoist 10 (body version, the webhook version chosen per app) and shortcut v1 (body version). These follow the README rule.

  • Not re-versioned:

    • shopware's sw-version header carries the shop's Shopware version, not a payload schema version.
    • signnow's /v2/ is the event-subscriptions API path (ramp precedent).
    • paysafe's /v1/ resource links are the API version.
    • cartesia's Cartesia-Version header versions requests to Cartesia, not deliveries.

    All four stay latest.

  • recruitee keys on event_type alone. The registry also records event_subtype as a refinement, e.g. candidate_moved → stage_changed. All 7 samples resolve to their topic on event_type, so it stays as exported.

  • Unlisted extra families:

    • cover-genius: the registry's RentalCover family uses a capitalised Event, which event won't read.
    • foursquare: geofence bodies also carry a nested geofenceEvent.eventType with different values, and the top level is the right key.

    All of their samples resolve, so they stay strings.

  • Filenames differ from topics in three providers. printify (order:created), sendbird (group_channel:changed) and todoist (item:added) use : on the wire. The files use . (order.created.json and so on), but the published topic keys come from each file's topic field and match the wire values.

  • footprint cites svix.com, because Footprint delivers through Svix and its event catalog is a Svix-hosted page. confluence is the Data Center product (label "Confluence (Data Center)").


Generated by Claude Code

Copied from hookdeck/webhook-registry samples-doc/ at 98fcbd65 (rows added
in hookdeck/webhook-registry#106): assemblyai, cartesia, confluence,
coterie, cover-genius, documenso, footprint, foursquare, honeybadger,
increase, lokalise, medusa, middesk, mistral, northflank, oncehub, paysafe,
printify, recruitee, sendbird, shopware, shortcut, signnow, stigg,
storyblok, stream, todoist, unit, wave, workable, xendit, zoho-sign. The
other 11 batch 4 rows have no doc sample, so they get no directory.

Sample files are unchanged. One index.json differs from the export:

- unit: topic_identifier is ["data[].type", "data.type"]. The registry
  row's carrier is data[].type (a delivery's data is an array of events),
  and its carrier_note says ten doc examples (assignment.*,
  cardFraudCase.*, repayment.*, wireDrawdown.created) show data as a
  single object, to be read at data.type. The export's "data[].type"
  resolved 105 of 115 samples; the list resolves all 115.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
The export named the sample after the registry's event key,
trigger:build:start, which is the create-notification-integration API's
subscription key. The delivery carries build:start in the body's `event`
and in the X-Northflank-Notification-Integration-Event-Type header; the
registry row's join_normalization says the wire value drops the trigger:
prefix. With the old topic, topic_identifier "event" resolved 0 of 1
samples. The topic is now build:start and the file build.start.json, as
for Rubrik in #71, so it resolves 1 of 1. The body is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
@garethx garethx self-assigned this Oct 22, 2026
@vercel

vercel Bot commented Oct 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webhook-samples Ready Ready Preview Oct 22, 2026 12:09pm UTC

Request Review

@garethx
garethx merged commit d5d8b24 into main Oct 22, 2026
3 checks passed
@garethx
garethx deleted the feature/samples-verified-sources-batch-4 branch October 22, 2026 12:25

This branch was successfully deployed

1 active deployment
Preview — 33b920be Deployed Oct 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants