Přeskočit na obsah

Build hooky (auto-rebuild)

Build-time obsah se „zapeče“ do statiky při buildu → po publikaci v adminu se web musí přebudovat. Contenta to udělá za tebe přes build hook.

  1. Ve svém deployi vytvoř deploy hook URL (Cloudflare Pages → Settings → Builds & deployments → Deploy hooks; nebo vlastní CI).
  2. V adminu nastav webu buildWebhookUrl (+ volitelně buildWebhookSecret):
PATCH https://api.contenta.cz/api/v1/admin/sites/muj-web
{ "buildWebhookUrl": "https://…", "buildWebhookSecret": "(volitelné)" }

Při publikaci/změně obsahu (i naplánovaném zveřejnění) POST na tu URL:

{ "event": "article.publish | article.update | article.unpublish | site.invalidate",
"siteSlug": "muj-web", "entityType": "Post", "entityId": "", "reason": "", "ts": "ISO" }

Cloudflare deploy hook tělo ani podpis neověřuje → funguje napříč účty. Fire-and-forget (doručení negarantované; případně si přidej retry).

Ověření podpisu (jen vlastní CI)

Sekce “Ověření podpisu (jen vlastní CI)”

Pokud místo CF deploy hooku použiješ vlastní endpoint a nastavíš buildWebhookSecret, přijde hlavička X-Contenta-Signature: sha256=<hmac>:

import { createHmac, timingSafeEqual } from "crypto";
const expected = "sha256=" + createHmac("sha256", SECRET).update(rawBody).digest("hex");
const ok = timingSafeEqual(Buffer.from(req.headers["x-contenta-signature"]), Buffer.from(expected));