Skip to main content

What's new

This topic includes new features, improvements, and bug fixes for the Preflight tool.

2.0.0 - May 26, 2026

Preflight now supports saving design states to Asset Storage with subsequent rendering through the rendering service.

New Endpoint

POST api/product/save: Accepts a product object, userId, and stateId. Returns an array of origin file URLs and the stateId:

{
"originUrls": [],
"stateId": "4afcbe97-b51d-4f6f-b9db-70c55536b80a"
}
  • POST api/product/finish — Renders hi-res outputs. Now returns 403 Forbidden when the DisableFinishEndpoint parameter is set to true.

Configuration Parameters

Added new parameters for working with Asset Storage:

ParameterDescription
DisableFinishEndpointIf true, disables the finish endpoint and returns 403 on access.
AssetProcessorEndpointURL of the asset processor gateway in the current environment.
AssetProcessorApiKeyAPI key for the asset processor.
SaveStateRetryCountNumber of save retry attempts. Default: 3.
AssetStorageStatesIf true, saves the state file as a private asset in Asset Storage. If false, saves to disk (legacy behavior).

State Backups

If all retry attempts to save the state file to asset storage fail, the state is saved to disk at basePath/backups/{userId}/{stateId}.st for recovery and investigation.

To use the new functionality, deploy Preflight 2.0.0, update the configuration, and adjust your pipeline:

  1. Approval step: Call $['preflight'].getPreviews(). Previews are available in $['preflight'].previews for the gallery widget.
  2. Add to cart (finish widget): Call $['preflight'].saveProduct(), which returns the saved stateId and an array of origin file URLs.
  3. Order widget: Remove hi-res resources and include the stateId from $['preflight'].stateId.
note

Calling the finish method directly is not recommended with the new flow.

Was this page helpful?