documenso-debug-bundle
Provides a comprehensive debugging toolkit for troubleshooting Documenso integrations and gathering diagnostic information.
Install this skill
Security score
The documenso-debug-bundle skill was audited on Feb 21, 2026 and we found 80 security issues across 4 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 89 | result.connectivity.error = `${error.statusCode}: ${error.message}`; |
Template literal with variable interpolation in command context
| 113 | console.log(`Latency: ${result.connectivity.latencyMs}ms`); |
Template literal with variable interpolation in command context
| 116 | console.log(`Error: ${result.connectivity.error}`); |
Template literal with variable interpolation in command context
| 132 | console.log(`\n=== Inspecting Document: ${documentId} ===\n`); |
Template literal with variable interpolation in command context
| 138 | console.log(` ID: ${doc.id}`); |
Template literal with variable interpolation in command context
| 139 | console.log(` Title: ${doc.title}`); |
Template literal with variable interpolation in command context
| 140 | console.log(` Status: ${doc.status}`); |
Template literal with variable interpolation in command context
| 141 | console.log(` Created: ${doc.createdAt}`); |
Template literal with variable interpolation in command context
| 142 | console.log(` Updated: ${doc.updatedAt}`); |
Template literal with variable interpolation in command context
| 146 | console.log(` - ${recipient.email}`); |
Template literal with variable interpolation in command context
| 147 | console.log(` Name: ${recipient.name}`); |
Template literal with variable interpolation in command context
| 148 | console.log(` Role: ${recipient.role}`); |
Template literal with variable interpolation in command context
| 149 | console.log(` Status: ${recipient.signingStatus}`); |
Template literal with variable interpolation in command context
| 150 | console.log(` Signing Order: ${recipient.signingOrder}`); |
Template literal with variable interpolation in command context
| 155 | console.log(` - Type: ${field.type}`); |
Template literal with variable interpolation in command context
| 156 | console.log(` Page: ${field.page}`); |
Template literal with variable interpolation in command context
| 157 | console.log(` Position: (${field.positionX}, ${field.positionY})`); |
Template literal with variable interpolation in command context
| 158 | console.log(` Size: ${field.width}x${field.height}`); |
Template literal with variable interpolation in command context
| 159 | console.log(` Recipient: ${field.recipientId}`); |
Template literal with variable interpolation in command context
| 164 | console.error(`Failed to inspect document: ${error.message}`); |
Template literal with variable interpolation in command context
| 165 | console.error(`Status: ${error.statusCode}`); |
Template literal with variable interpolation in command context
| 193 | console.log(`[${timestamp}] DEBUG:`, ...args); |
Template literal with variable interpolation in command context
| 197 | console.warn(`[${timestamp}] WARN:`, ...args); |
Template literal with variable interpolation in command context
| 201 | console.error(`[${timestamp}] ERROR:`, ...args); |
Template literal with variable interpolation in command context
| 224 | console.log(`Time: ${new Date().toISOString()}`); |
Template literal with variable interpolation in command context
| 225 | console.log(`Method: ${req.method}`); |
Template literal with variable interpolation in command context
| 226 | console.log(`Path: ${req.path}`); |
Template literal with variable interpolation in command context
| 239 | console.log(`Secret Header: ${secret ? "present" : "missing"}`); |
Template literal with variable interpolation in command context
| 240 | console.log(`Secret Valid: ${secret === expectedSecret}`); |
Template literal with variable interpolation in command context
| 244 | console.log(`Event: ${payload.event}`); |
Template literal with variable interpolation in command context
| 245 | console.log(`Document ID: ${payload.payload?.id}`); |
Template literal with variable interpolation in command context
| 246 | console.log(`Status: ${payload.payload?.status}`); |
Template literal with variable interpolation in command context
| 258 | console.log(`Webhook test server running on port ${PORT}`); |
Template literal with variable interpolation in command context
| 259 | console.log(`Endpoint: POST http://localhost:${PORT}/webhook/documenso`); |
Template literal with variable interpolation in command context
| 260 | console.log(`\nUse ngrok to expose: ngrok http ${PORT}`); |
Template literal with variable interpolation in command context
| 311 | console.log(`${status}: ${count}`); |
Template literal with variable interpolation in command context
| 317 | console.log(`- ${doc.title} (${doc.id}) - ${doc.age} old`); |
Template literal with variable interpolation in command context
| 320 | console.log(`... and ${pendingDocs.length - 10} more`); |
Template literal with variable interpolation in command context
| 332 | if (diffDays < 7) return `${diffDays} days`; |
Template literal with variable interpolation in command context
| 333 | if (diffDays < 30) return `${Math.floor(diffDays / 7)} weeks`; |
Template literal with variable interpolation in command context
| 334 | return `${Math.floor(diffDays / 30)} months`; |
Template literal with variable interpolation in command context
| 364 | ```bash |
Curl to non-GitHub URL
| 356 | curl -X POST http://localhost:3000/webhook/documenso \ |
Webhook reference - potential data exfiltration
| 212 | ### Script 4: Webhook Tester |
Webhook reference - potential data exfiltration
| 215 | // scripts/test-webhook.ts |
Webhook reference - potential data exfiltration
| 234 | app.post("/webhook/documenso", (req, res) => { |
Webhook reference - potential data exfiltration
| 236 | const expectedSecret = process.env.DOCUMENSO_WEBHOOK_SECRET; |
Webhook reference - potential data exfiltration
| 238 | console.log(`\n=== Webhook Received ===`); |
Webhook reference - potential data exfiltration
| 251 | console.error(`Failed to parse webhook:`, error); |
Webhook reference - potential data exfiltration
| 258 | console.log(`Webhook test server running on port ${PORT}`); |
Webhook reference - potential data exfiltration
| 259 | console.log(`Endpoint: POST http://localhost:${PORT}/webhook/documenso`); |
Webhook reference - potential data exfiltration
| 355 | # Test webhook endpoint |
Webhook reference - potential data exfiltration
| 356 | curl -X POST http://localhost:3000/webhook/documenso \ |
Webhook reference - potential data exfiltration
| 384 | # Check webhook secret |
Webhook reference - potential data exfiltration
| 385 | if [ -z "$DOCUMENSO_WEBHOOK_SECRET" ]; then |
Webhook reference - potential data exfiltration
| 386 | echo "DOCUMENSO_WEBHOOK_SECRET: NOT SET" |
Webhook reference - potential data exfiltration
| 388 | echo "DOCUMENSO_WEBHOOK_SECRET: SET" |
Ngrok tunnel reference
| 260 | console.log(`\nUse ngrok to expose: ngrok http ${PORT}`); |
Access to .env file
| 60 | apiKeyPresent: !!process.env.DOCUMENSO_API_KEY, |
Access to .env file
| 61 | apiKeyPrefix: process.env.DOCUMENSO_API_KEY?.substring(0, 7) ?? "missing", |
Access to .env file
| 62 | baseUrl: process.env.DOCUMENSO_BASE_URL ?? "https://app.documenso.com/api/v2/", |
Access to .env file
| 71 | if (!process.env.DOCUMENSO_API_KEY) { |
Access to .env file
| 77 | apiKey: process.env.DOCUMENSO_API_KEY, |
Access to .env file
| 78 | serverURL: process.env.DOCUMENSO_BASE_URL, |
Access to .env file
| 129 | apiKey: process.env.DOCUMENSO_API_KEY ?? "", |
Access to .env file
| 188 | apiKey: process.env.DOCUMENSO_API_KEY ?? "", |
Access to .env file
| 189 | serverURL: process.env.DOCUMENSO_BASE_URL, |
Access to .env file
| 236 | const expectedSecret = process.env.DOCUMENSO_WEBHOOK_SECRET; |
Access to .env file
| 256 | const PORT = process.env.PORT || 3000; |
Access to .env file
| 272 | apiKey: process.env.DOCUMENSO_API_KEY ?? "", |
External URL reference
| 62 | baseUrl: process.env.DOCUMENSO_BASE_URL ?? "https://app.documenso.com/api/v2/", |
External URL reference
| 259 | console.log(`Endpoint: POST http://localhost:${PORT}/webhook/documenso`); |
External URL reference
| 345 | https://app.documenso.com/api/v2/documents |
External URL reference
| 349 | https://app.documenso.com/api/v2/documents/{documentId} |
External URL reference
| 353 | https://app.documenso.com/api/v2/templates |
External URL reference
| 356 | curl -X POST http://localhost:3000/webhook/documenso \ |
External URL reference
| 396 | ${DOCUMENSO_BASE_URL:-https://app.documenso.com/api/v2/}documents?perPage=1) |
External URL reference
| 418 | - API Base URL: https://app.documenso.com/api/v2/ |
External URL reference
| 456 | - [Documenso Discord](https://documenso.com/discord) |
External URL reference
| 457 | - [API Status](https://status.documenso.com) |