Skip to content

Webhook API documentation + announcement blog + changelog#2875

Open
atharvadeosthale wants to merge 5 commits intomainfrom
webhook-api-docs
Open

Webhook API documentation + announcement blog + changelog#2875
atharvadeosthale wants to merge 5 commits intomainfrom
webhook-api-docs

Conversation

@atharvadeosthale
Copy link
Copy Markdown
Member

PR changes webhooks pages, make it more informative, adds announcement blog, and changelog.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Greptile Summary

This PR adds a Webhooks API announcement blog post, a changelog entry, and significantly expands the webhooks documentation to cover full programmatic management (create, list, get, update, delete, rotate signing key) across all 12 supported Server SDKs. The API keys scopes table is updated to include webhooks.read and webhooks.write. Signature verification examples now use timing-safe comparison functions throughout.

Confidence Score: 5/5

Safe to merge; all findings are minor style/consistency issues that don't affect correctness or user experience.

No P0 or P1 issues found. The two remaining comments are P2 — a redundant length check in the Swift verification snippet and an enabled parameter inconsistency between the Rust snippets in the blog post versus the docs page. Neither blocks functionality.

src/routes/docs/advanced/platform/webhooks/+page.markdoc — minor Swift snippet redundancy and Rust enabled param inconsistency with the blog post.

Important Files Changed

Filename Overview
src/routes/docs/advanced/platform/webhooks/+page.markdoc Heavily expanded docs covering full CRUD + list/get/rotate-key for all 12 SDKs, plus signature verification with timing-safe comparisons; minor redundant length check in the Swift snippet and enabled parameter inconsistency with the blog post.
src/routes/blog/post/announcing-webhooks-api/+page.markdoc New announcement blog post for the Webhooks API; uses users.*.create / users.*.update event examples and covers create/update/delete/rotate-key across all SDKs. Rust snippets pass None for enabled where docs page passes Some(true) — minor inconsistency.
src/routes/changelog/(entries)/2026-04-10.markdoc New changelog entry dated April 10, 2026 announcing the Webhooks API with a link to the announcement blog post; content is concise and accurate.
src/routes/docs/advanced/platform/api-keys/+page.markdoc Scopes table updated to include webhooks.read and webhooks.write; change is correct and consistent with the rest of the table.

Reviews (5): Last reviewed commit: "address comments" | Re-trigger Greptile

Comment thread src/routes/docs/advanced/platform/webhooks/+page.markdoc Outdated
Comment thread src/routes/blog/post/announcing-webhooks-api/+page.markdoc
Comment thread src/routes/docs/advanced/platform/webhooks/+page.markdoc Outdated
Comment thread src/routes/blog/post/announcing-webhooks-api/+page.markdoc Outdated
Comment thread src/routes/blog/post/announcing-webhooks-api/+page.markdoc

Once your API key has the appropriate scopes, you can manage webhooks through any Appwrite Server SDK.

## Create a webhook
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth having some more examples:

  • showcase of ability to set httpUser and httpPass
  • showcase ability to list webhooks (filter, paginate, maybe)
  • Ability to rotate signature key

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to have a separate blog on this showcasing a real-world use-case

cc @atharvadeosthale

Comment thread src/routes/blog/post/announcing-webhooks-api/+page.markdoc
Comment thread src/routes/blog/post/announcing-webhooks-api/+page.markdoc
Comment thread src/routes/changelog/(entries)/2026-04-10.markdoc

{% multicode %}
```server-nodejs
const result = await webhooks.updateSecret({
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can now also pass secret parameter, if you want to use custom secret. Worth showcasing, its very good feature for when you need to do key rotation 0 downtime.

tls: true
});
```
```server-php
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm so many examples might make article very very very long. I recall we have tab support, maybe we can use it here? Show only Node by default, but have tabs for different languages


$webhooks = new Webhooks($client);

$result = $webhooks->create(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important after creation to print secret, in our code samples. Because this is the only time you are now able to see secret.

if you get webhook, or list webhooks, you will no longer see secret (it will be emty)

Comment on lines +587 to +593
# Get started

The Webhooks API is available on **Appwrite Cloud** today.

1. Navigate to **Overview** > **Integration** > **API keys** and create or update an API key with the `webhooks.read` and `webhooks.write` scopes.
2. Initialize a Server SDK with your API key.
3. Use the `Webhooks` service to manage your webhooks from code.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this makes sense after the code examples

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.

3 participants