Make max JSON request size configurable and default to 8 MB

This is to allow multi-document updates, for example when creating a new
project from a zip file.
This commit is contained in:
Eric Mc Sween 2020-05-08 11:53:02 -04:00
parent e60d9237d0
commit e8f935d046
3 changed files with 4 additions and 3 deletions

View file

@ -31,7 +31,7 @@ Metrics.event_loop.monitor(logger, 100)
const app = express() const app = express()
app.use(Metrics.http.monitor(logger)) app.use(Metrics.http.monitor(logger))
app.use(bodyParser.json({ limit: Settings.max_doc_length + 64 * 1024 })) app.use(bodyParser.json({ limit: Settings.maxJsonRequestSize }))
Metrics.injectMetricsRoute(app) Metrics.injectMetricsRoute(app)
DispatchManager.createAndStartDispatchers(Settings.dispatcherCount || 10) DispatchManager.createAndStartDispatchers(Settings.dispatcherCount || 10)

View file

@ -168,6 +168,8 @@ module.exports = {
}, },
max_doc_length: 2 * 1024 * 1024, // 2mb max_doc_length: 2 * 1024 * 1024, // 2mb
maxJsonRequestSize:
parseInt(process.env.MAX_JSON_REQUEST_SIZE, 10) || 8 * 1024 * 1024,
dispatcherCount: process.env.DISPATCHER_COUNT, dispatcherCount: process.env.DISPATCHER_COUNT,

View file

@ -230,8 +230,7 @@ describe('Setting a document', function () {
}) })
this.newLines = [] this.newLines = []
while ( while (
JSON.stringify(this.newLines).length < JSON.stringify(this.newLines).length <= Settings.maxJsonRequestSize
Settings.max_doc_length + 64 * 1024
) { ) {
this.newLines.push('(a long line of text)'.repeat(10000)) this.newLines.push('(a long line of text)'.repeat(10000))
} }