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.