1.10 release notes

Before attempting to upgrade to Document Engine 1.10, first upgrade to Document Engine 1.9 if you haven't already, and make sure your application still runs as expected.

We always verify that the release process is seamless when upgrading to the newest version from the last minor release. If you’re using an older version, make sure to upgrade one minor version at a time.

Example: If the latest version is 1.6.1 and you’re running 1.3.x, upgrade to 1.4.x first, then to 1.5.x, and only then to 1.6.1.

Refer to our upgrade guide for more information.

Highlights

GdPicture update

This version ships with GdPicture 14.3.9. This is an upgrade that mainly brings fixes to Microsoft Office documents.

Build instructions

This version adds new options to the applyXfdfAction when importing XFDF files to documents using the Build instructions. Specifically, these options are now available:

  • ignorePageRotation - This determines if page rotation will be ignored when applying XFDF files.

  • richTextEnabled - Determines if text annotations from the XFDF files should be converted to rich or plain text.

Convert documents to HTML and Markdown

This version can now convert PDF documents into structured HTML or Markdown formats. This new feature is designed to accurately preserve document's layout and formatting, including text, headings, tables, and styles.

To use this, simply set the output type to html or markdown in your Build instructions (requires HTML or Markdown conversion license).

PDF/UA accessibility auto-tagging

You can now automatically tag your PDF documents, ensuring they are compliant with the PDF/UA-1 standard. This makes your documents screen-reader-ready and accessible to a wider audience.

To enable this, just specify the output type as pdfua in your Build instructions (requires PDF/UA accessibility auto-tagging license).

Affected Endpoints

All endpoints that work with Build Instructions are affected by this change including:

  • /api/documents/{documentId}/apply_instructions
  • /api/documents/{documentId}/layers/{layerName}/apply_instructions
  • /api/build

Check the Document Engine API reference for more information.

Prometheus Exporter Release Notes

The Prometheus exporter provides HTTP endpoints for exposing application metrics in a format compatible with Prometheus. This enables easy integration with Prometheus for monitoring and alerting.

Features

  • Exposes metrics via an HTTP server.
  • Configurable port for the metrics endpoint.
  • Ability to enable or disable the exporter via application configuration.
  • Supports setting global labels for all exported metrics.

Configuration

  • ENABLE_PROMETHEUS - Set to true to enable the Prometheus (defaults to false)
  • PROMETHEUS_PORT - Port number for the Prometheus metrics HTTP server (defaults to 9091)
  • PROMETHEUS_GLOBAL_LABELS - Comma-separated list of global labels for all metrics (e.g. env=prod,app=api)
  • METRICS_CUSTOM_TAGS - Comma-separated list of global tags (e.g. region=us-east,version=1.0)

The METRICS_CUSTOM_TAGS environment variable can be used to set custom tags for the metrics. It is meant to be a global setting that applies to all metric exporters, not only the Prometheus exporter.

Server response header

By default, Document Engine replies with the following header:

server: Document Engine/1.10.0

You can now control it via the new SERVER_HEADER_TOKENS environment variable. Supported values are:

  • off - no server header in response
  • name - server: Document Engine header in response
  • version - server: Document Engine/1.10.0 header in response

If the value is not provided, or if an invalid value is provided, Document Engine defaults to version with an appropriate warning in logs.

Hoard (internal cache)

Our system uses an internal cache called Hoard to store frequently accessed data, particularly large files or parts of them. Sometimes, a small piece of data we want to cache might internally reference a much larger file. To prevent the cache from unnecessarily holding onto that entire large file, Hoard can intelligently copy just the relevant small piece, optimizing memory usage.

This release introduces two new environment variables.

  • HOARD_MAX_SIZE - defaults to 100000000 bytes (100 MB). Represents maximum Hoard cache size.

  • HOARD_BINARY_COPY_ENABLED - enabled by default. To disable, set the value to off, no, false, or 0.

  • HOARD_BINARY_COPY_THRESHOLD - default value is 2, can be set to any integer value.

The HOARD_BINARY_COPY_ENABLED and HOARD_BINARY_COPY_THRESHOLD environment variables give advanced users control over this specific memory optimization. HOARD_BINARY_COPY_ENABLED toggles this copying feature, while HOARD_BINARY_COPY_THRESHOLD sets the size ratio at which a copy is performed. These are highly technical settings with carefully optimized default values. We strongly advise against changing them unless you have a deep understanding of our system's memory management, as incorrect configurations can significantly impact memory usage and overall performance.

Breaking changes

Minimize information disclosure option removed

The undocumented MINIMIZE_INFORMATION_DISCLOSURE environment variable is no longer supported. It was removed in favor of the new SERVER_HEADER_TOKENS environment variable.

To migrate to this new variable, simply replace MINIMIZE_INFORMATION_DISCLOSURE=true with SERVER_HEADER_TOKENS=off.

Database migrations

This release doesn’t include any database migration.

Changelog

A full list of changes, along with the issue numbers, is available here.