Skip to content

Support Large CSV File Imports in Influxdb3-explorer #26622

@panda00hi

Description

@panda00hi

Use case:

  • influxdb3-explorer version 1.0.3
  • influxdb 3 core version 3.2.1

Users use influxdb3-explorer to import CSV files into InfluxDB 3 core. Real-world datasets (e.g., IoT sensor logs, monitoring data, financial records) often over 5MB or even 100MB . But the current default limits prevent successful import, blocking a core use case of the influxdb3-explorer tool.

Proposal:
Increase the default request body size limits in both Nginx and the Node.js backend to support large CSV file imports (e.g., up to 100MB). Make these limits configurable via environment variables or config files, and document the defaults.

Current behaviour:

Image Image Image

When importing a 5.3MB CSV file , the following actions fail:

  • 【Parse Data】
  • 【Convert to Line Protocol】

This is due to:

  • Nginx default limit : client_max_body_size is missing in nginx.conf → defaults to 1MB .
  • Node.js (NestJS) limit : The backend enforces a default express.json() limit (likely 10MB or lower), even after Nginx fix.

Your provided nginx.conf does not include client_max_body_size, confirming the issue.

Desired behaviour:

  1. Out-of-the-box support for CSV files up to 5-100MB without manual configuration.
  2. Configurable limits via environment variables or volume file.
  3. Clear documentation about limits and how to adjust them.
  4. Graceful error messages if limits are exceeded

Alternatives considered:

  1. Update nginx.conf (in image):
Image
  1. Update src/main.ts (source code):
    I was unable to locate the source code, but I did my utmost to find and modify the main.js file as follows. Fortunately, it worked!
    Steps:
  2. Locate and Modify the File Size Limit
    Find the line "limits:{fileSize:5242880}" and change it to "limits:{fileSize:104857600}". This increases the file size limit from 5MB to 100MB.
  3. Insert Express Middleware Configuration
    Locate the line "i.NestFactory.create(l.AppModule,t)" and insert the following code immediately after it:
a.use(require("express").json({ limit: "100mb" })),a.use(require("express").urlencoded({ extended: true, limit: "100mb" })),
Image

By following these steps, the application should now support larger file uploads and handle requests with larger payloads. Oh, don`t forget restart the container!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions