---
title: "Config reference | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/preflight/reference/config/"
---

# Config reference

> In the [distribution package](https://customerscanvas.com/docs/on-premises/preflight/installing-preflight.md), you can find the **config.json** file. This file configures both the multistep editor (not covered in this topic) and the Preflight Tool widget. In this file, you must define such properties as the URL of the server component, preflight rules, and front-end parameters.

:::note
You can load this configuration from an external file (as in the provided [sample](https://customerscanvas.com/docs/on-premises/preflight/installing-preflight.md#running-the-preflight-tool)), define it as a variable in JavaScript code, or even read it from your database.
:::

Front-end parameters allow you to set up the workflow and appearance of this tool. Now, let's see how you can configure the preflight widget. The following example represents the `params.config` object and shows how you can specify a 720 x 576 pt product with 300 dpi, configure the bleed zone, set a preflight rule to check the color space, enable a button to upload the users' files, and more.

<pre><code>{`{
    "`}<a href="#language" title="UI language.">language</a>{`": "en",
    "`}<a href="#backendUrl" title="The link to the running back end.">backendUrl</a>{`": "https://example.com",
    "`}<a href="#startFromUploader" title="Enables the uploader on the start page.">startFromUploader</a>{`": true,
    "`}<a href="#errorMode" title="Defines the server error handling mode.">mode</a>{`": {
        "`}<a href="#ignoreServerErrors" title="Ignores the errors and proceeds.">ignoreServerErrors</a>{`": true,
        "`}<a href="#handling-server-errors" title="The time limit for requests.">requestTimeout</a>{`": 20
    },
    "`}<a href="#uploader" title="Properties of the file uploader.">uploader</a>{`": {
        "`}<a href="#fileTypes" title="Allowed extensions.">fileTypes</a>{`": [".pdf", ".jpg", ".jpeg"],
        "`}<a href="#multiple" title="Enables multiple selection.">multiple</a>{`": true,
        "`}<a href="#initialMode" title="Adjustment mode after upload.">initialMode</a>{`": "default",
        "`}<a href="#fileUploadBehavior" title="Placement on the pages.">fileUploadBehavior</a>{`": "insertCurrent",
        "`}<a href="#fileMaxSize" title="Maximum file size in bytes.">fileMaxSize</a>{`": 536870912
    },
    "`}<a href="#state" title="Properties of the state file loader.">state</a>{`": {
        "`}<a href="#stateId" title="The state file identifier.">stateId</a>{`": ""
    },
    "`}<a href="#product" title="Product properties.">product</a>{`": {
        "`}<a href="#allowAddPages" title="Allows adding new pages.">allowAddPages</a>{`": true,
        "`}<a href="#allowAddPagesUploading" title="Auto-adds pages from file.">allowAddPagesUploading</a>{`": false,
        "`}<a href="#allowDeletePages" title="Allows deleting pages.">allowDeletePages</a>{`": true,
        "`}<a href="#products" title="Product pages definition.">pages</a>{`": [{title: 'First'}, {title: 'Second'}],
        "`}<a href="#dpi" title="Output resolution.">dpi</a>{`": 300,
        "`}<a href="#bleed" title="The bleed zone.">bleed</a>{`": 20,
        "`}<a href="#bleedLineWidth" title="Width of the bleed line.">bleedLineWidth</a>{`": 0.5,
        "`}<a href="#bleedLineColor" title="Color of the bleed line.">bleedLineColor</a>{`": "#0000ff",
        "`}<a href="#trimLineWidth" title="Width of the trim line.">trimLineWidth</a>{`": 0.5,
        "`}<a href="#trimLineColor" title="Color of the trim line.">trimLineColor</a>{`": "#ff0000",
        "`}<a href="#size" title="The product size.">size</a>{`": {
            "`}<a href="#width" title="Product width.">width</a>{`": 720,
            "`}<a href="#height" title="Product height.">height</a>{`": 576
        },
        "`}<a href="#safetyLines" title="Safety lines config.">safetyLines</a>{`": [{
            "`}<a href="#lineName" title="Line name.">name</a>{`": "bleed",
            "`}<a href="#margin" title="Margin distance.">margin</a>{`": 40,
            "`}<a href="#color" title="Dash color.">color</a>{`": "#00ff00",
            "`}<a href="#altColor" title="Alternate dash color.">altColor</a>{`": "#00ff00",
            "`}<a href="#stepPx" title="Dash length.">stepPx</a>{`": 5,
            "`}<a href="#widthPx" title="Dash width.">widthPx</a>{`": 1,
            "`}<a href="#borderRadius" title="Rounded corners.">borderRadius</a>{`": 0,
            "`}<a href="#safetyLinePages" title="Target pages.">pages</a>{`": [],
            "`}<a href="#legend" title="Safety line description.">legend</a>{`": {
                "`}<a href="#legendtitle" title="Legend title.">title</a>{`": "Bleed line",
                "`}<a href="#legenddescription" title="Legend description.">description</a>{`": "Keep important content inside"
            }
        }],
        "`}<a href="#mockup" title="Product mockup.">mockup</a>{`": {
            "`}<a href="#mockupSize" title="Mockup size.">size</a>{`": { width: 0, height: 0 },
            "`}<a href="#mockupLocation" title="Mockup position.">location</a>{`": { x: 0, y: 0 },
            "`}<a href="#mockupImage" title="Mockup image source.">image</a>{`": "",
            "`}<a href="#mockupSource" title="Mockup source type.">sourceType</a>{`": ""
        }
    },
    "`}<a href="#viewer" title="Viewer settings.">viewer</a>{`": {
        "`}<a href="#locked" title="Lock elements.">locked</a>{`": false,
        "`}<a href="#shadeBleedZone" title="Shade bleed zone.">shadeBleedZone</a>{`": false,
        "`}<a href="#bleedZoneColor" title="Bleed zone shade color.">bleedZoneColor</a>{`": "",
        "`}<a href="#keepAspectRatio" title="Proportional resizing.">keepAspectRatio</a>{`": false,
        "`}<a href="#highlightImages" title="Highlight problem images.">highlightImages</a>{`": true,
        "`}<a href="#rulers" title="Rulers config.">rulers</a>{`": {
            "`}<a href="#rulersEnabled" title="Show rulers.">enabled</a>{`": true,
            "`}<a href="#rulersUnit" title="Ruler unit.">unit</a>{`": "inch",
            "`}<a href="#rulersCustomUnitScale" title="Custom scale.">customUnitScale</a>{`": 1,
            "`}<a href="#rulersOrigin" title="Ruler origin.">origin</a>{`": { "x": 0, "y": 0 }
        },
        "`}<a href="#zoom" title="Zoom settings.">zoom</a>{`": {
            "`}<a href="#min" title="Min zoom.">min</a>{`": 0.2,
            "`}<a href="#max" title="Max zoom.">max</a>{`": 1.2,
            "`}<a href="#step" title="Zoom step.">step</a>{`": 0.1,
            "`}<a href="#default" title="Initial zoom.">default</a>{`": 1,
            "`}<a href="#zoommode" title="Zoom mode.">mode</a>{`": "none",
            "`}<a href="#zoomValues" title="Predefined zoom levels.">zoomValues</a>{`": []
        }
    },
    "`}<a href="#rules" title="Preflight rules.">rules</a>{`": [{
        "`}<a href="#type" title="Rule type.">type</a>{`": "colorspace",
        "`}<a href="#severity" title="Rule severity.">severity</a>{`": "error",
        "`}<a href="#enableFix" title="Allow autofix.">enableFix</a>{`": true,
        "`}<a href="#rulesPages" title="Target pages.">pages</a>{`": [],
        "`}<a href="#params" title="Rule specific parameters.">params</a>{`": {
            "`}<a href="../reference/rules.md#allowedColorSpaces" title="Allowed spaces.">allowedColorSpaces</a>{`": ["cmyk"]
        }
    }],
    "`}<a href="#rendering" title="Rendering settings.">rendering</a>{`": {
        "`}<a href="#hiResOutputDpi" title="Output DPI.">hiResOutputDpi</a>{`": 300,
        "`}<a href="#hiResOutputToSeparateFiles" title="Separate files per page.">hiResOutputToSeparateFiles</a>{`": false,
        "`}<a href="#hiResOutputPdfCompressionType" title="PDF compression type.">hiResOutputPdfCompressionType</a>{`": "Jpeg",
        "`}<a href="#hiResOutputJpegCompressionQuality" title="JPEG quality.">hiResOutputJpegCompressionQuality</a>{`": 90,
        "`}<a href="#trimPreviewOnBleed" title="Trim preview to bleed.">trimPreviewOnBleed</a>{`": true,
        "`}<a href="#showTrimLineOnPreview" title="Show trim lines.">showTrimLineOnPreview</a>{`": false,
        "`}<a href="#keepPdfOriginalColors" title="Save original profiles.">keepPdfOriginalColors</a>{`": false,
        "`}<a href="#cmykColorProfileId" title="CMYK profile ID.">cmykColorProfileId</a>{`": "",
        "`}<a href="#grayscaleColorProfileId" title="Grayscale profile ID.">grayscaleColorProfileId</a>{`": "",
        "`}<a href="#rgbColorProfileId" title="RGB profile ID.">rgbColorProfileId</a>{`": "",
        "`}<a href="#previewSize" title="The size of preview images.">previewSize</a>{`": {
            "`}<a href="#previewWidth" title="The width of preview images.">width</a>{`": 800,
            "`}<a href="#previewHeight" title="The height of preview images.">height</a>{`": 800
        },
        "`}<a href="#hiResOutputPdfMetadata" title="PDF metadata.">hiResOutputPdfMetadata</a>{`": {
            "`}<a href="#pdfAuthor" title="The author of the PDF document.">author</a>{`": "",
            "`}<a href="#pdfCreator" title="The creator of the PDF document.">creator</a>{`": "",
            "`}<a href="#pdfKeywords" title="The keywords of the PDF document.">keywords</a>{`": "",
            "`}<a href="#pdfSubject" title="The subject of the PDF document.">subject</a>{`": "",
            "`}<a href="#pdfTitle" title="The title of the PDF document.">title</a>{`": ""
        }
    },
    "`}<a href="#interface" title="Configuration parameters of the interface.">interface</a>{`": {
        "`}<a href="#topToolbar" title="An array of Top Toolbar buttons.">topToolbar</a>{`": [{
            "`}<a href="#buttonName" title="The button name.">name</a>{`": "upload",
            "`}<a href="#topbuttonVisibility" title="Displays the button.">visibility</a>{`": "",
            "`}<a href="#topbuttonEnabled" title="Enables the button.">enabled</a>{`": "",
            "`}<a href="#topbuttonStyle" title="CSS styles.">style</a>{`": {
                "`}<a href="#topCssProperty" title="CSS property name and a new value.">background-color</a>{`": "white"
            }
        }],
        "`}<a href="#rightToolbar" title="The right toolbar.">rightToolbar</a>{`": {
            "`}<a href="#infoCard" title="CSS styles.">infoCard</a>{`": {
                "`}<a href="#isDialog" title="Defines a legend's layout.">isDialog</a>{`": true,
                "`}<a href="#infoCardStyles" title="Font style of the trim line title.">trimTitleStyles</a>{`": {},
                "`}<a href="#infoCardStyles" title="Font style of the bleed line title.">bleedTitleStyles</a>{`": {},
                "`}<a href="#infoCardStyles" title="Font style of the safety line title.">safetyLinesTitleStyles</a>{`": {},
                "`}<a href="#infoCardStyles" title="Font style of the important title.">importantTitleStyles</a>{`": {},
                "`}<a href="#infoCardStyles" title="Text font style.">textStyles</a>{`": {}
            },
            "`}<a href="#reportCard" title="Preflight report panel.">reportCard</a>{`": {
                "`}<a href="#useCustomLayout" title="Defines a report's layout.">useCustomLayout</a>{`": false,
                "`}<a href="#reportCardStyles" title="Font style of the card title.">cardTitleStyles</a>{`": {},
                "`}<a href="#reportCardStyles" title="Font style of the error title.">errorTitleStyles</a>{`": {},
                "`}<a href="#reportCardStyles" title="Font style of the warning title.">warningTitleStyles</a>{`": {},
                "`}<a href="#reportCardStyles" title="Font style of the messages.">messageStyles</a>{`": {},
                "`}<a href="#reportCardStyles" title="Font style of the button.">pageButtonStyles</a>{`": {},
                "`}<a href="#reportCardStyles" title="Font style of the Fix button.">fixButtonStyles</a>{`": {}
            }
        },
        "`}<a href="#leftToolbar" title="An array of custom buttons.">leftToolbar</a>{`": {
            "`}<a href="#hideForSinglePageProduct" title="The button title.">hideForSinglePageProduct</a>{`": false
        },
        "`}<a href="#customButtons" title="An array of custom buttons.">customButtons</a>{`": [{
            "`}<a href="#buttonTitle" title="The button title.">title</a>{`": "Fix all",
            "`}<a href="#buttonFilter" title="A filter for preflight rules.">filter</a>{`": {
                "`}<a href="#buttonSeverity" title="Severity of the rules to be fixed by the button.">severity</a>{`": ["error"],
                "`}<a href="#buttonTypes" title="Rules to be fixed by the button.">types</a>{`": ["colorspace"]
            },
            "`}<a href="#buttonStyle" title="CSS styles.">style</a>{`": {
                "`}<a href="#cssProperty" title="CSS property name and a new value.">background-color</a>{`": "white"
            }
        }]
    }
}`}</code></pre>

Now, let's see the description of these configuration parameters and their values.

| Name | Data type | Description |
| :--- | :--- | :--- |
| language | string | The language of the user interface, either `"en"` or `"nl"`. The default value is `"en"`. |
| backendUrl | string | The URL that links to the running back end. |
| startFromUploader | boolean | If `true`, displays the file uploader when opening the Preflight Tool. The default value is `true`. |

## Handling server errors

object: `mode`

| Name | Data type | Description |
| :--- | :--- | :--- |
| ignoreServerErrors | boolean | If `true`, all server errors will be written to the logs, and requests will be limited by the `requestTimeout`. If an error occurs, or the request timed out, then an empty successful response will be returned from the server. When fixing a rule fails, this rule will be ignored later. If the error occurred when the user clicks **Finish**, then rendering will be skipped, and the original image will be returned. The default value is `false`. |
| requestTimeout | number | The timeout, in seconds, after which a long-running request will be interrupted and an empty successful response will be returned. By default, requests last as long as needed. |

## The file uploader

object: `uploader`

| Name | Data type | Description |
| :--- | :--- | :--- |
| fileTypes | array containing any combination of `".pdf"`, `".ai"`, `".bmp"`, `".eps"`, `".gif"`, `".jpg"`, `".jpeg"`, `".png"`, `".psd"`, `".tiff"` | Extensions of files that a user is allowed to upload to the Preflight Tool. The default value is `[".pdf"]`. |
| multiple | boolean | If `true`, this parameter enables multiple selection of files to be uploaded. In this case, the Preflight Tool creates a multipage document, and the page order is the same as their upload order. The number of the uploaded pages cannot exceed the [product.pages](#products) value. The default value is `true`. |
| initialMode | `"fitToBleed"`, `"fitToTrim"`, `"fillToTrim"`, `"fillToBleed"`, `"default"` | Defines how the file should be adjusted after it is uploaded. You can fit or fill the file to the product `BleedBox` and `TrimBox`. By default, the file is inserted as is. |
| fileUploadBehavior | `"replaceFull"`, `"insertCurrent"`, `"insertNew"` | Defines how the file should be placed on the pages. `"replaceFull"` - clears the product and inserts the file starting from the first page. `"insertCurrent"` - inserts the uploaded file starting from the current page. `"insertNew"` - inserts the uploaded file into the newly added pages. The default value is `"insertCurrent"`. |
| fileMaxSize | number | The maximum allowed size of uploaded files, in bytes. The default value is `536870912`. |

## Loading state files

object: `state`

| Name | Data type | Description |
| :--- | :--- | :--- |
| stateId | string | The identifier of the state file in Asset Storage. |

## Products

object: `product`

| Name | Data type | Description |
| :--- | :--- | :--- |
| allowAddPages | boolean | Allows users to add new pages to the product. The default value is `false`. |
| allowAddPagesUploading | boolean | Automatically adds pages to the product so that the entire multipage file opens in the Preflight Tool, even if this file has more pages than allowed by the `pages` or `pages.max` value or the size of the `Page` array. The default value is `false`, and adds no more pages than allowed in `pages`. |
| allowDeletePages | boolean | Allows users to delete pages from the product. The default value is `false`. |
| pages | number \| Page[] \| [PageLimit](https://customerscanvas.com/docs/on-premises/preflight/howto/configure-products.md#how-to-set-product-pages) | Defines either an array of product pages or the number of pages. A `Page` object contains a `title` property and allows you to define page titles in the user interface. `PageLimit` contains the `init`, `min`, and `max` properties and allows you to set the initial number of pages as well as page number limits. The default value is `1`. For details, see [How to Set Product Pages](https://customerscanvas.com/docs/on-premises/preflight/howto/configure-products.md#how-to-set-product-pages). |
| dpi | number | The resolution of the output image. The default value is `300`. |
| bleed | number \| IMarginLTRB \| IMarginHV | The bleed zone. This margin extends the resulting image. The default value is `0`. |
| bleedLineWidth | number | The width of the bleed line, in points. This property changes only the visual representation in the veiwer and does not affect rendering to the print file. The default value is `0.5`. |
| bleedLineColor | string | The color of bleed lines in the CSS format. |
| trimLineWidth | number | The width of the trim lines, in points. This property changes only the visual representation in the veiwer and does not affect rendering to the print file. The default value is `0.5`. |
| trimLineColor | string | The color of trim lines in the CSS format. |

### The product size

object: `size`

| Name | Data type | Description |
| :--- | :--- | :--- |
| width | number | The width of the resulting image, in points. |
| height | number | The height of the resulting image, in points. |

### Safety lines on the previews

object: `safetyLines`

| Name | Data type | Description |
| :--- | :--- | :--- |
| name | string | The name of the safety lines, an arbitrary string. |
| margin | number | The distance between safety lines and design bounds. |
| color | string | The main color of safety lines in the CSS format. |
| altColor | string | The alternative color of safety lines in the CSS format. |
| stepPx | number | The length of the safety line dashes. |
| widthPx | number | The width of safety lines. |
| borderRadius | string or number | The definition of rounded corners in the CSS format. For details, see the [Safety zone](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/product-definition/bleeds-and-safety-zone.md) topic. |
| pages | number[] \| string[] | When this array contains numbers, then they are product page numbers starting from `1`. For example, to apply the safety lines to the first and third pages, specify `[1,3]`. If there are strings, they must be in the `"/N"` format, and safety lines will be applied to every Nth page. For example, to apply the safety lines to every third pages, specify `["/3"]`. By default, this is an empty array. Note that an empty array (as well as an unspecified value) means that page limits are not applied. |

#### The safety line description

object: `safetyLines.legend`

| Name | Data type | Description |
| :--- | :--- | :--- |
| title | string | The title of the safety line, which appears on the right panel. |
| description | string | The description of the safety line, which appears on the right panel. |

### Mockups

object: `mockup`

| Name | Data type | Description |
| :--- | :--- | :--- |
| size | object | The width and height of the mockup, in points. If not set, the mockup fills in the entire product. Note that the real size of the mockup should be equal to or greater than the product size. |
| location | object | The position of the upper-left corner of the mockup. The default value is `{ x: 0, y: 0 }`. |
| image | string | If `sourceType` is `"web"`, it should be the URL to the image; if `sourceType` is `"local"`, it should be the name of a file in the [mockup folder](https://customerscanvas.com/docs/on-premises/preflight/config-backend.md); if sourceType is `"assetStorage"`, it should be the ID or the path to resource in asset storage. |
| sourceType | `"assetStorage"`, `"local"`, `"web"` | The asset source type. The default value is `"web"`. |

## The Viewer

object: `viewer`

| Name | Data type | Description |
| :--- | :--- | :--- |
| locked | boolean | If `true`, does not allow for manipulating elements. The default value is `false`. |
| shadeBleedZone | boolean | If `true`, applies the `bleedZoneColor` to the bleed zone. The default value is `false`. |
| bleedZoneColor | string | The color of the bleed zone is applied when `shadeBleedZone` is `true`. The default value is `"cmyk(0%,0%,0%,50%,50%)"`. |
| keepAspectRatio | boolean | If `true`, maintains the design aspect ratio. The default value is `true`. |
| highlightImages | boolean | If `true`, highlights images in the viewer that have preflight problems. The default value is `false`. |

### Rulers

object: [`rulers`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/editor-configuration/rulers-grids-snaplines.md)

| Name | Data type | Description |
| :--- | :--- | :--- |
| enabled | boolean | If `true`, displays the rulers. The default value is `true`. |
| unit | `"inch"`, `"mm"`, `"cm"`, `"point"`, `"custom"` | The measurement unit of the rulers. The default value is `'inch'`. |
| customUnitScale | number | The ratio of the custom unit to points. This parameter is applied only if the `unit` parameter is set to `"custom"`. For more details, you can refer to the [Rulers and grids](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/editor-configuration/rulers-grids-snaplines.md) topic. The default value is `1`. |
| origin | object | The point of origin relative to the upper-left corner of the design. The coordinates are measured in the units specified by the `unit` parameter. The default value is `{ "x": 0, "y": 0 }`. |

### Viewer zoom

object: `zoom`

| Name | Data type | Description |
| :--- | :--- | :--- |
| min | number | The minimum zoom of the viewer. The default value is `0.1`. |
| max | number | The maximum zoom of the viewer. The default value is `1.5`. |
| step | number | The step of increasing or decreasing the zoom level of the viewer. The default value is `0.1`. |
| default | number | The initial zoom value of the viewer. This parameter has a higher priority than the zoom `mode`. The default value is `1`. |
| mode | `"none"`, `"bestFit"`, `"bestFitShrinkOnly"`, `"fitToWidth"`, `"fitToHeight"`, `"fitToWidthShrinkOnly"`, `"fitToHeightShrinkOnly"` | This parameter only works when you do not specify `zoom.default` in the configuration. For example, you can place an entire large product in the viewer if you omit `zoom.default` and set `zoom.mode` to `"bestFit"`. The default value is `"none"`. |
| zoomValues | number[] | This array of positive numbers defines the design zoom levels in the viewer. For example, `0.1` corresponds to the 10% zoom, and `1` corresponds to the 100% level. By default, this is an empty array. |

## Preflight rules

object: [rules](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md)

| Name | Data type | Description |
| :--- | :--- | :--- |
| type | ["colorspace"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#color-spaces), ["spotcolors"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#spot-colors), ["resolution"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#resolution), ["safetyboxes"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#defined-boxes), ["nomargins"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#trim-box), ["insideBleedbox"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#bleed-box), ["sameorientation"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#page-orientation), ["forbiddenfonts"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#forbidden-fonts), ["allowedfonts"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#allowed-fonts), ["fonttypes"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#font-types), ["minfontsize"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#font-size), ["textascurves"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#vector-text), ["embeddedfonts"](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md#embedded-fonts) | The rule type. For more details, see the [rules](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md) topic. |
| severity | `"error"`, `"warning"` | The rule severity. All errors must be fixed before rendering the resulting image, whereas warnings may remain on the design. |
| enableFix | boolean | If `true`, displays the **Fix** button to autofix errors. |
| pages | number[] \| string[] | When this array contains numbers, then they are product page numbers starting from `1`. For example, to apply the rules to the first and third pages, specify `[1,3]`. If there are strings, they must be in the `"/N"` format, and rules will be applied to every Nth page. For example, to apply the rules to every third pages, specify `["/3"]`. By default, this is an empty array. Note that an empty array (as well as an unspecified value) means that page limits are not applied. |
| params | object | Parameters of the rule depending on its type. For more details, see the [rules](https://customerscanvas.com/docs/on-premises/preflight/reference/rules.md) topic. |

## Rendering settings

object: `rendering`

| Name | Data type | Description |
| :--- | :--- | :--- |
| hiResOutputDpi | integer | Hi-res output resolution in dots per inch (DPI). The default value is `300`. |
| hiResOutputToSeparateFiles | boolean | If `true`, the hi-res output for each page of a multipage product is put in a separate file. The default value is `false`. |
| hiResOutputPdfCompressionType | `"Jpeg"`, `"Zip"`, `"None"` | The type of PDF file compression. The default value is `"None"`, and no compression is performed. For `"Jpeg"`, `hiResOutputJpegCompressionQuality` is additionally applied. |
| hiResOutputJpegCompressionQuality | integer in the range [`0` .. `100`] | JPEG compression quality in percent. The default value is `90`. |
| trimPreviewOnBleed | boolean | If `true`, trims preview images and page thumbnails to the Bleed area. The default value is `true`. |
| showTrimLineOnPreview | boolean | If `trimPreviewOnBleed` is `false` and this value is `true`, displays trim lines on preview images. The default value is `false`. |
| keepPdfOriginalColors | boolean | If `true`, saves the output PDF file with the original color profile. The default value is `false`. |
| cmykColorProfileId | string | The identifier of the CMYK color profile in Asset Storage. |
| grayscaleColorProfileId | string | The identifier of the grayscale color profile in Asset Storage. |
| rgbColorProfileId | string | The identifier of the RGB color profile in Asset Storage. |

### The size of preview images

object: `previewSize`

| Name | Data type | Description |
| :--- | :--- | :--- |
| width | number | The width of preview images, in pixels. The default value is `800`. |
| height | number | The height of preview images, in pixels. The default value is `800`. |

### PDF metadata

object: `hiResOutputPdfMetadata`

| Name | Data type | Description |
| :--- | :--- | :--- |
| author | string | The author of the PDF document. |
| creator | string | The creator of the PDF document. |
| keywords | string | Keywords of the PDF document. |
| subject | string | The subject of the PDF document. |
| title | string | The title of the PDF document. |

## The user interface

object: `interface`

### Top Toolbar buttons

object: `topToolbar`

| Name | Data type | Description |
| :--- | :--- | :--- |
| name | string | The button name. In the current implementation, you can use the following predefined button names: `"upload"`, `"fillToBleed"`, `"fillToTrim"`, `"fitToBleed"`, `"fitToTrim"`, `"center"`, `"reset"`, `"keepAspectRatio"`, `"rotateCanvas"`, `"rotateImage"`, `"applyToAll"`, `"fullscreen"`, `"history"`. |
| visibility | `"always"`, `"topButtonChanges"`, `"surfaceChanges"` | Defines when the button gets visible: always, when the current surface has changed with top buttons, or when the current surface has changed in some way. |
| enabled | `"always"`, `"topButtonChanges"`, `"surfaceChanges"` | Defines when the button gets enabled: always, when the current surface has changed with top buttons, or when the current surface has changed in some way. |

#### Style of a Top toolbar button

object: `style`

| Name | Data type | Description |
| :--- | :--- | :--- |
| \<property\> | string | CSS properties. You can specify a new style through a key-value pair, where the key is the property name, and the value is in the CSS format or a [CSS variable](https://customerscanvas.com/docs/on-premises/preflight/howto/change-appearance.md). For example, you can change the button `color`, `background-color`, and more. For an example of customizing the **Fix All** button, you can refer to [how-to guides](https://customerscanvas.com/docs/on-premises/preflight/howto/define-preflight-rules.md#how-to-configure-the-fix-all-button). |

### The right panel

object: `rightToolbar`

#### Legend

object: `rightToolbar.infoCard`

| Name | Data type | Description |
| :--- | :--- | :--- |
| isDialog | boolean | If `true`, displays the legend in the modal window. If `false`, displays the legend on the panel. The default value is `true`. |
| `trimTitleStyles` `bleedTitleStyles` `safetyLinesTitleStyles` `importantTitleStyles` `textStyles` | object | For every object defining the style, you can configure the following font properties: <pre><code>{'{'} "font-family": "Work Sans", "font-weight": "600", "font-size": "16px", "line-height": "19px", "color": "#414042" {'}'}</code></pre> |

#### Preflight report

object: `rightToolbar.reportCard`

| Name | Data type | Description |
| :--- | :--- | :--- |
| useCustomLayout | boolean | If `true`, displays a plain error list first and the buttons at the panel bottom. If `false`, displays the buttons first and errors in drop-down lists. The default value is `false`. |
| `cardTitleStyles` `errorTitleStyles` `warningTitleStyles` `messageStyles` `pageButtonStyles` `fixButtonStyles` | object | For every object defining the style, you can configure the following font properties: <pre><code>{'{'} "font-family": "Work Sans", "font-weight": "600", "font-size": "16px", "line-height": "19px", "color": "#414042" {'}'}</code></pre> |

### The left panel

object: `leftToolbar`

| Name | Data type | Description |
| :--- | :--- | :--- |
| hideForSinglePageProduct | boolean | If `true`, hides the pagination control for single-page products. This property assumes that no new pages can be added, meaning `product.allowAddPages` is set to `false`. The default value is `false`. |

### Custom Fix buttons

object: `customButtons`

| Name | Data type | Description |
| :--- | :--- | :--- |
| title | string | The button title that appears on the right panel. |

#### Preflight rules to fix

object: `filter`

| Name | Data type | Description |
| :--- | :--- | :--- |
| severity | array | Severity of the rules to be fixed with the button. This array may contain `"error"`, `"warning"`, or both. |
| types | array | This array may contain any combination of rule types. |

#### Style of a custom button

object: `style`

| Name | Data type | Description |
| :--- | :--- | :--- |
| \<property\> | string | CSS properties. You can specify a new style through a key-value pair, where the key is the property name, and the value is in the CSS format or a [CSS variable](https://customerscanvas.com/docs/on-premises/preflight/howto/change-appearance.md). For example, you can change the button `color`, `background-color`, and more. For an example of customizing the **Fix All** button, you can refer to [how-to guides](https://customerscanvas.com/docs/on-premises/preflight/howto/define-preflight-rules.md#how-to-configure-the-fix-all-button). |
