convex-http-actions
Facilitates external API integration and webhook handling with customizable HTTP endpoints in Convex applications.
Install this skill
Security score
The convex-http-actions skill was audited on Mar 1, 2026 and we found 36 security issues across 3 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 640 | name: `${event.data.first_name} ${event.data.last_name}`, |
Template literal with variable interpolation in command context
| 648 | name: `${event.data.first_name} ${event.data.last_name}`, |
Webhook reference - potential data exfiltration
| 4 | description: External API integration and webhook handling including HTTP endpoint routing, request/response handling, authentication, CORS configuration, and webhook signature validation |
Webhook reference - potential data exfiltration
| 7 | tags: [convex, http, actions, webhooks, api, endpoints] |
Webhook reference - potential data exfiltration
| 12 | Build HTTP endpoints for webhooks, external API integrations, and custom routes in Convex applications. |
Webhook reference - potential data exfiltration
| 29 | - Receive webhooks from third-party services |
Webhook reference - potential data exfiltration
| 222 | ### Webhook Handling |
Webhook reference - potential data exfiltration
| 232 | // Stripe webhook |
Webhook reference - potential data exfiltration
| 234 | path: "/webhooks/stripe", |
Webhook reference - potential data exfiltration
| 244 | // Verify webhook signature (in action with Node.js) |
Webhook reference - potential data exfiltration
| 246 | await ctx.runAction(internal.stripe.verifyAndProcessWebhook, { |
Webhook reference - potential data exfiltration
| 252 | console.error("Webhook error:", error); |
Webhook reference - potential data exfiltration
| 253 | return new Response("Webhook error", { status: 400 }); |
Webhook reference - potential data exfiltration
| 258 | // GitHub webhook |
Webhook reference - potential data exfiltration
| 260 | path: "/webhooks/github", |
Webhook reference - potential data exfiltration
| 272 | await ctx.runAction(internal.github.processWebhook, { |
Webhook reference - potential data exfiltration
| 285 | ### Webhook Signature Verification |
Webhook reference - potential data exfiltration
| 298 | export const verifyAndProcessWebhook = internalAction({ |
Webhook reference - potential data exfiltration
| 305 | const webhookSecret = process.env.STRIPE_WEBHOOK_SECRET!; |
Webhook reference - potential data exfiltration
| 308 | const event = stripe.webhooks.constructEvent( |
Webhook reference - potential data exfiltration
| 311 | webhookSecret |
Webhook reference - potential data exfiltration
| 565 | ### Complete Webhook Integration |
Webhook reference - potential data exfiltration
| 575 | // Clerk webhook for user sync |
Webhook reference - potential data exfiltration
| 577 | path: "/webhooks/clerk", |
Webhook reference - potential data exfiltration
| 599 | console.error("Clerk webhook error:", error); |
Webhook reference - potential data exfiltration
| 600 | return new Response("Webhook verification failed", { status: 400 }); |
Webhook reference - potential data exfiltration
| 615 | import { Webhook } from "svix"; |
Webhook reference - potential data exfiltration
| 626 | const webhookSecret = process.env.CLERK_WEBHOOK_SECRET!; |
Webhook reference - potential data exfiltration
| 627 | const wh = new Webhook(webhookSecret); |
Webhook reference - potential data exfiltration
| 683 | webhookEvents: defineTable({ |
Webhook reference - potential data exfiltration
| 713 | - Verify webhook signatures before processing |
Webhook reference - potential data exfiltration
| 714 | - Log webhook events for debugging |
Webhook reference - potential data exfiltration
| 721 | 2. **Not validating webhook signatures** - Security vulnerability |
Access to .env file
| 296 | const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!); |
Access to .env file
| 305 | const webhookSecret = process.env.STRIPE_WEBHOOK_SECRET!; |
Access to .env file
| 626 | const webhookSecret = process.env.CLERK_WEBHOOK_SECRET!; |
Install this skill with one command
/learn @debsouryadatta/convex-http-actions