Versioning and the public API
This package follows Semantic Versioning, and it tells you exactly which classes that promise covers.
Every class named below lives under the root namespace Pushery\Webhooks\ — so
Server\PendingWebhook is Pushery\Webhooks\Server\PendingWebhook. That root changed in
2.0.0; see Upgrading from 1.x.
The public API is
WebhookManagerand theWebhooksfacade, andWebhookEvent- Sending:
Server\PendingWebhookandServer\Facades\WebhookSender, the backoff contract, the queuedCallWebhookJob, and the delivery value objects the events carry - Receiving:
Client\WebhookProcessor,Client\WebhookConfig,Client\InboundMessageand itsClient\PayloadFormat,Client\Jobs\ProcessWebhookJob,Client\Http\RawBody, the profile / response contracts, and the two strategy contracts a config can point at —Client\Dedupe\DedupeKeyResolverandClient\EventTypeResolver - Signing: the
Core\Signing\SignatureSchemecontract, every shipped scheme, andSecretSet/WebhookMessage/SignatureHeaders/VerificationResult - The SSRF guard contract, the models, the enums and exceptions (named one by one, with their stored values), and all the events
- Host-implemented seams the shipped screens ask:
Platform\Transform\PayloadTransformer,Dashboard\DashboardScope,Dashboard\DashboardTimezoneResolver(the zone the dashboard renders timestamps in, when one fixed value is not enough), andPlatform\Support\ReadableEndpoints(which endpoints a reader may see beyond the ones they own, for a host that shares them) - The migration database guards
Database\DatabaseRequirementandDatabase\PostgresRequirement(a published migration copy calls one of them), and thewebhooks.database.connectionkey - The service providers — including their static
ignoreMigrations(), one per layer, which is how a host takes the migrations over — the Livewire component aliases, the published views and migrations, the config tree, and the publish tags
Everything else is @internal
The delivery pipeline, the response classifier, the config reader, the SSRF resolver internals, the dashboard's metric objects, the listeners — and may change in a minor release.
Those classes carry an @internal docblock tag, your IDE and static analyzer will say so, and
a test in the package's repository fails if a class outside the list above ever loses the tag.
Bind to the list; leave the rest to the engine.