XLS-SQL logo
XLS-SQL

Trust center

Security Overview

XLS-SQL runs each upload in a restricted PostgreSQL sandbox. This page explains the controls that keep sessions separate and queries contained.

Security is a shared responsibility: review a query before running it and never send credentials or confidential workbooks in a support request.

Session isolation

All uploaded data is securely isolated in a PostgreSQL sandbox tied to the current session. A query can work only with your own uploaded table and cannot read data from another session.

Access to PostgreSQL system data, unrelated tables, and multiple statements in one request is blocked.

Query restrictions

  • SELECT and read-only WITH queries can read only your own uploaded table.
  • When mutation mode is enabled, you can use INSERT, UPDATE, and DELETE on that table.
  • Limited ALTER TABLE is also supported for your own table: add or drop a column, rename a column, or change a column definition.
  • CREATE, TRUNCATE, COPY, GRANT, REVOKE, SELECT INTO, modifying CTEs, and access to other tables are blocked.
  • Queries have a 30-second statement timeout.
  • The SQL request body is limited to 64 KB.
  • Generated AI SQL passes through the same validator and is never run automatically.

Infrastructure controls

  • Production uses a restricted PostgreSQL query role separate from administrative access.
  • PostgreSQL is not exposed as a public production port.
  • Nginx applies request, connection, and heavy-operation rate limits.
  • Production configuration includes HSTS, CSP, frame protection, and related response headers.
  • Application logs mask session identifiers.

Data lifecycle

Uploaded data stays inside the isolated PostgreSQL sandbox for the life of the temporary session. Starting a new upload requests deletion of the active session, and expired sessions are removed automatically.

See the Privacy Policy for browser storage, analytics, and DeepSeek processing details.

File and resource limits

  • Imports support XLSX, XLS, CSV, TSV, ODS, JSON, HTML, and Parquet, including documented aliases.
  • Spreadsheet formats import the first worksheet; HTML imports the first table.
  • Macros and external workbook links are not executed or preserved.
  • 200 MB and 200 columns per file, with no input row-count limit.
  • 1,000 rows in the initial preview and up to 50,000 rows in an export.
  • Empty rows are skipped and column types are inferred as text, integer, or numeric.

Security tips

  • Keep the original workbook: a temporary sandbox should not be the only copy of your data.
  • Review WHERE clauses with a SELECT before running an UPDATE or DELETE where mutations are enabled.
  • Avoid Ask AI for sensitive files; using it sends the schema and sample rows to DeepSeek.
  • Remove personal data and secrets from any example shared with support.

Report a security issue

Send a concise report, reproduction steps, and impact assessment to xls.sql@gmail.com. Do not include live personal data, credentials, or a workbook containing confidential information.