Skip to content

Commit 7a21af7

Browse files
committed
feat(node): Add maxRequestBodySize
1 parent 22a0e35 commit 7a21af7

File tree

13 files changed

+448
-8
lines changed

13 files changed

+448
-8
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Payload for requests
2+
export function generatePayload(sizeInBytes: number): { data: string } {
3+
const baseSize = JSON.stringify({ data: '' }).length;
4+
const contentLength = sizeInBytes - baseSize;
5+
6+
return { data: 'x'.repeat(contentLength) };
7+
}
8+
9+
// Generate the "expected" body string
10+
export function generatePayloadString(dataLength: number, truncate?: boolean): string {
11+
const prefix = '{"data":"';
12+
const suffix = truncate ? '...' : '"}';
13+
14+
const baseStructuralLength = prefix.length + suffix.length;
15+
const dataContent = 'x'.repeat(dataLength - baseStructuralLength);
16+
17+
return `${prefix}${dataContent}${suffix}`;
18+
}
19+
20+
// Functions for non-ASCII payloads (e.g. emojis)
21+
export function generateEmojiPayload(sizeInBytes: number): { data: string } {
22+
const baseSize = JSON.stringify({ data: '' }).length;
23+
const contentLength = sizeInBytes - baseSize;
24+
25+
return { data: '👍'.repeat(contentLength) };
26+
}
27+
export function generateEmojiPayloadString(dataLength: number, truncate?: boolean): string {
28+
const prefix = '{"data":"';
29+
const suffix = truncate ? '...' : '"}';
30+
31+
const baseStructuralLength = suffix.length;
32+
const dataContent = '👍'.repeat(dataLength - baseStructuralLength);
33+
34+
return `${prefix}${dataContent}${suffix}`;
35+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/node';
2+
import { loggingTransport } from '@sentry-internal/node-integration-tests';
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
tracesSampleRate: 1.0,
8+
transport: loggingTransport,
9+
integrations: [Sentry.httpIntegration({ maxRequestBodySize: 'always' })],
10+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as Sentry from '@sentry/node';
2+
import { loggingTransport } from '@sentry-internal/node-integration-tests';
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
tracesSampleRate: 1.0,
8+
transport: loggingTransport,
9+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/node';
2+
import { loggingTransport } from '@sentry-internal/node-integration-tests';
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
tracesSampleRate: 1.0,
8+
transport: loggingTransport,
9+
integrations: [Sentry.httpIntegration({ maxRequestBodySize: 'medium' })],
10+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/node';
2+
import { loggingTransport } from '@sentry-internal/node-integration-tests';
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
tracesSampleRate: 1.0,
8+
transport: loggingTransport,
9+
integrations: [Sentry.httpIntegration({ maxRequestBodySize: 'none' })],
10+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/node';
2+
import { loggingTransport } from '@sentry-internal/node-integration-tests';
3+
4+
Sentry.init({
5+
dsn: 'https://[email protected]/1337',
6+
release: '1.0',
7+
tracesSampleRate: 1.0,
8+
transport: loggingTransport,
9+
integrations: [Sentry.httpIntegration({ maxRequestBodySize: 'small' })],
10+
});
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import * as Sentry from '@sentry/node';
2+
import { startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
3+
import bodyParser from 'body-parser';
4+
import express from 'express';
5+
6+
const app = express();
7+
8+
// Increase limit for JSON parsing
9+
app.use(bodyParser.json({ limit: '3mb' }));
10+
app.use(express.json({ limit: '3mb' }));
11+
12+
app.post('/test-body-size', (req, res) => {
13+
const receivedSize = JSON.stringify(req.body).length;
14+
res.json({
15+
success: true,
16+
receivedSize,
17+
message: 'Payload processed successfully',
18+
});
19+
});
20+
21+
Sentry.setupExpressErrorHandler(app);
22+
23+
startExpressServerAndSendPortToRunner(app);

0 commit comments

Comments
 (0)