Quando usar
Useconfig: { public: true } quando o chamador não pode enviar X-Jelou-Token:
- Webhooks de serviços externos (Stripe, GitHub, Twilio)
- Callbacks de gateways de pagamento
- APIs públicas acessíveis do navegador
config: { public: true } quando o chamador não pode enviar X-Jelou-Token:
define()export default define({
description: "Webhook do Stripe",
input: z.object({ type: z.string() }),
config: { public: true, methods: ["POST"], mcp: false },
handler: async (input, ctx) => {
return { received: true };
},
});
app() — per-toolexport default app({
tools: {
webhook: define({
config: { public: true, mcp: false },
handler: async () => ({ ok: true }),
}),
admin: define({
// protegido por padrão
handler: async () => ({ ok: true }),
}),
},
});
handler: async (input, ctx, request) => {
const signature = request.headers.get("x-webhook-signature");
const secret = ctx.env.get("WEBHOOK_SECRET");
// verificar HMAC-SHA256...
}
Esta página foi útil?