Compression

In order to speed up the data transfer from the client to the server (upload), the server accepts compressed request bodies.
The request body should contain binary data representing the compressed file. That means that the generated JSON is compressed client-side using the given algorithm (LZF, ZIP, or base64 zlib).

There are three types of compression supported:

ZIP file

Content-Type: application/zip

  • Used by file uploads

LZF

Content-Type: application/x-lzfcompress

  • Used by Excel Client

base64 zlib

Content-Type: application/application/x-b64zlibcompress

  • Used by former Classic UI

The responses of the server are GZIP compressed by default according to the standard HTTP mechanisms (if the client signals support for it).
References: http://en.wikipedia.org/wiki/Lempel_Ziv https://github.com/ning/compress

File Size Limit

Protection against zip bombs is implemented by validating the ZIP header and limiting the number of bytes that are read during extraction.
The default uncompressed data size limit is set to 2 GB. This data size limit can be configured in pricefx-config.xml by setting the maxExtractedDataSizeBytes parameter - the number of bytes after which the extraction of compressed data will stop. The ZIP header of compressed payloads will also be validated against this limit. Setting a non-positive value will disable this protection.