Repository navigation
Add 186 doc-sourced samples for verified-sources batch 2 (26 providers) - #70
Merged
Merged
Conversation
Copied from hookdeck/webhook-registry samples-doc/ at 7e60bde1 (rows added in hookdeck/webhook-registry#102): asaas, callrail, castle, daytona, dbt-cloud, didit, dropbox, dwolla, fivetran, gopuff, helius, heroku, hibob, launchdarkly, lemon-squeezy, mailjet, modern-treasury, motive, onfido, ramp, rutter, stytch, unipile, veriff, webex, zernio. The other 19 rows in that PR have no doc sample, so they get no directory. Sample files are unchanged. Three index.json files differ from the export: - castle: files under v1/ with latest_version "v1" rather than latest/. Both bodies carry "api_version": "v1", and the README says a payload api_version is the value. - lemon-squeezy: topic_identifier is x-event-name, the registry row's header discriminator, rather than the meta.event_name body fallback. Every sample carries the header. - veriff: topic_identifier is the README's ordered list form (action, verification.status, checkType, eventType, type), one carrier per registry family. The export wrote them as one " | "-joined string, which the resolver would read as a single key. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
["event", "AccountStatus.message"]: the registry's messaging/email/users
family carrier, then the account-status webhook's, whose body is only
{"AccountStatus": {...}} with no top-level event. This resolves 2 of 2
samples, where "event" alone resolved 1.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Gareth · project thread
Before: hookdeck/webhook-registry#102 (verified sources batch 2, merged) added 45 provider rows and exported doc examples for 26 of them to the registry's
samples-doc/tree. None of those 26 had a directory here.After: 26 new provider directories with 186 doc-sourced samples.
providers.jsongoes from 155 to 181 providers. The other 19 rows have no published example body, so they get no directory: appsflyer, bolt, buildkite, cloudflare, databricks, drata, gravity-forms, mailparser, maintainx, marketo, maxio, microsoft-dynamics, mongodb-atlas, ninjaone, pusher, signal-sciences, tailscale, whop and zoominfo. No existing file is changed. This touches only new directories, so it doesn't conflict with the pilot or batch 1 PRs.topic_identifierlatesteventlatestnull(no discriminator)v1typelatesteventlatesteventTypelatestwebhook_typelatestnull(no discriminator)latesttopiclatesteventlatestnull(no discriminator)latest[].typelatestwebhook_metadata.event.includev2typelatestaccesses[].actionlatestx-event-name(header)latesteventlatestnull(composed:X-Topic+.+event)latestactionlatestpayload.actionlatesttypelatestcodelatestnull(composed:source.object_type.action)latesteventlatestaction,verification.status,checkType,eventType,typelatestnull(composed:resource+.+event)latesteventHow: I copied
samples-doc/providers/<p>/from webhook-registrymain(7e60bde1) intoproviders/, the same way #65 to #67 did. Every sample file is byte-identical to the export. Threeindex.jsonfiles differ, and those changes are listed first below. Every othertopic_identifierequals the registry row's discriminator path. I checked each one with a port ofresolveTopicagainst every sample. Each file carriessource.type: vendor-documentationand its page URL, and each version is markedsourced_via: docs.yarn compilepasses (155 → 181 providers, compiled topic count equals file count for all 26).yarn testpasses 14/14.Worth a look:
v1/, notlatest/. Both bodies carry"api_version": "v1", and the README rule says a payloadapi_versionis the value. Castle doesn't document what the field versions, so this rests on the field name alone. The files were moved, andlatest_versionand the provenance key were changed to match.x-event-name, notmeta.event_name. The registry row records theX-Event-Nameheader as the discriminator, and the body field as a fallback. The export keyed on the fallback. All 4 samples carry the header, and it resolves to the topic in each." | "-joined string, which the resolver would have treated as a single key. As a list (scrapfly precedent), the carriers resolve all 9 samples to their topics. The decision webhook has no type field, soverification.statusis its carrier.null: modern-treasury, stytch and webex, as exported. This follows the strava and facebook precedent. Batch 1's nash, also composed, kept its primary path (type), following sentry. It's a one-line change if you want them aligned.[].type: the body is a root-level array thatresolveTopiccan't read, so a capture would beuntitled-<hash>. This matches sparkpost (feat: add 57 doc-sourced samples for aftership, circleci, docker-hub, grafana, snipcart, sparkpost + checkout Identity Verification #58)./v1/, but that's the management API version (as with snipcart and nylas). onfido'spayload_versionis set at registration and isn't in the delivery. heroku'sversionis the Platform API media type ofdata. All three staylatest.typeis$list_item.createdand heroku's include isapi:app. The files arelist_item.created.jsonandapi.app.json, but the published topic keys come from each file'stopicfield and match the wire values.eventresolves 1 of 2. TheCREDENTIALSbody belongs to a family with noeventfield.Update (ee74cc5): unipile's
topic_identifieris now["event", "AccountStatus.message"]. It resolves 2/2 samples (was 1/2). helius's[].typeresolves 1/1 once the resolver fix in #68 merges. All four composed rows (nash in #69 too) are nownull.yarn compilepasses andyarn testpasses 14/14.Generated by Claude Code