From e370f57ef97cfe3fcff57809afb6636e0a90dfa6 Mon Sep 17 00:00:00 2001 From: Abdelrahman Essawy Date: Mon, 22 Jun 2026 16:30:23 +0300 Subject: [PATCH] feat(docs): add compose job page and default code groups to the SDK tab --- docs.json | 9 ++ guides/webhooks.mdx | 12 ++ jobs/compose.mdx | 295 +++++++++++++++++++++++++++++++++++++++ snippets/poll-status.mdx | 10 ++ support/errors.mdx | 28 ++++ 5 files changed, 354 insertions(+) create mode 100644 jobs/compose.mdx diff --git a/docs.json b/docs.json index 1abec72..2c91b4d 100644 --- a/docs.json +++ b/docs.json @@ -41,6 +41,7 @@ "group": "Jobs", "pages": [ "jobs/ffmpeg", + "jobs/compose", { "group": "Captions", "icon": "closed-captioning", @@ -133,6 +134,14 @@ "source": "/jobs/caption-burn", "destination": "/jobs/captions/burn" }, + { + "source": "/jobs/compose/:slug*", + "destination": "/jobs/compose" + }, + { + "source": "/job-types/compose", + "destination": "/jobs/compose" + }, { "source": "/cli/:slug*", "destination": "/cli" diff --git a/guides/webhooks.mdx b/guides/webhooks.mdx index 2b60195..d45ab0a 100644 --- a/guides/webhooks.mdx +++ b/guides/webhooks.mdx @@ -122,6 +122,18 @@ The signature is HMAC-SHA256 over `{timestamp}.{body}` using your webhook secret +```ts SDK +import { verifyWebhookSignature } from "@rendobar/sdk/webhooks"; + +// The signature covers `${timestamp}.${rawBody}` (raw string, not parsed JSON). +const ok = await verifyWebhookSignature( + `${timestamp}.${rawBody}`, + signature, // X-Rendobar-Signature header + process.env.WEBHOOK_SECRET, +); +if (!ok) throw new Error("Invalid signature"); +``` + ```javascript Node.js import { createHmac, timingSafeEqual } from "crypto"; diff --git a/jobs/compose.mdx b/jobs/compose.mdx new file mode 100644 index 0000000..3241302 --- /dev/null +++ b/jobs/compose.mdx @@ -0,0 +1,295 @@ +--- +title: "Compose: render from a timeline" +sidebarTitle: "Compose" +description: "Render a video from a declarative JSON timeline. Tracks, clips, transitions, text, and per-clip effects, in one API call." +icon: "film" +keywords: ["video compose api", "json timeline to video", "video transitions api", "video editing api", "compose"] +canonical: "https://rendobar.com/docs/jobs/compose" +--- + +