When a connector calls an external system, CHILI GraFx routes the request through a server-side proxy that forwards your request headers — including the connector's Authorization header — on to that system. This is usually what you want, but some upstreams hand back pre-signed URLs (for example a CDN link that already carries its own authentication in the query string). Forwarding the connector's Authorization header to those URLs can cause the request to be rejected, so the asset fails to load.
You can now tell the proxy to drop specific headers on a per-request basis using the new X-GraFx-Proxy-Exclude-Headers request header. Provide a comma-separated list of header names, and those headers are removed from the outbound request before it reaches the external system. Header names are matched case-insensitively, surrounding whitespace is trimmed, and the X-GraFx-Proxy-Exclude-Headers header itself is never forwarded.
For example, to stop the connector's Authorization header from being sent to a pre-signed CDN URL:
X-GraFx-Proxy-Exclude-Headers: Authorization
This is supported on both the GET and POST connector proxy requests. It makes connectors that rely on pre-signed media URLs — such as the Aprimo connector, which serves assets through time-limited signed URLs — work reliably, without the proxy interfering with the upstream's own authentication.
Smart Crop is GraFx Studio's AI-powered fill mode that automatically zooms and positions an image inside a frame so the most important part stays in view, based on the image's Subject Area and POI (Point of Interest) — detected automatically by GraFx Genie. This release is a major upgrade:
A more predictable algorithm. The new version needs far less trial-and-error. It always fills the frame with no empty edges, always keeps the POI inside the frame's Subject Position, and fits as much of the Subject Area as it can — only cropping in as a last resort.
Subject alignment. A new setting nudges the subject toward any side of the frame's Subject Position instead of always centering it, so a subject can hug a layout edge and stay there across different aspect ratios.
Automatic versioning. Each frame keeps the version it was built with, so existing templates render exactly as before — and a "New smart crop available — apply it" prompt upgrades a frame to the latest algorithm in one click.
Five live previews. The asset details panel now shows five preview aspect ratios instead of three, in both GraFx Media and the Studio workspace, making it easier to set the right Subject Area and POI.
You can now map a component's image variable to a template's single-select list variable, giving template designers a more flexible way to drive component imagery from list-based choices.
Text frames can now use auto-grow and copyfitting together — a frame can both expand to fit its text and scale the text to stay within limits, a combination that previously meant choosing one or the other.
The Layouts and Pages tabs now stay visible for every layout intent, including animation and digital static layouts, so navigation is consistent no matter what you are designing.
The linear gradient color picker has been reorganized — the Colors/Custom toggle now sits below the gradient bar — making gradients easier to read and adjust.
When you add a component that contains a missing font, GraFx Studio now shows an error dialog right away, so you can resolve the font reference instead of running into a silent failure.
Working with connectors is now cleaner in two ways: unused connectors are automatically removed from a document when you save it, and connector mapping offers expanded options for how a data source maps into your templates.
Selecting a layout no longer makes the Layouts panel jump back to the top. The override dropdown list is sized correctly again, after becoming too narrow for its reset options. The interface now refreshes properly when you undo switching a variable, a template keeps its correct name after a "Save as", and the character-limit field once again accepts its maximum value.
We fixed three text issues: incorrect letter tracking when combined with a stroke, a glyph that was placed in the wrong position for a specific font, and a separate font that rendered incorrectly.
An image on the canvas now updates immediately after a Brand Kit sync, and copying and pasting an anchored frame onto a different page works correctly.
All requests now go through the authentication refresh mechanism, reducing unexpected failures during long sessions, and the SDK's image-upload staging call now handles token expiration gracefully.
A font preview is the sample image GraFx generates for each font style so you can see the typeface at a glance. The square (400×400) preview for newly uploaded fonts was rendering its sample text on a single line instead of wrapping to fill the square. Newly uploaded fonts now get a correctly wrapped square preview.
When setting up or testing an integration, you previously had to run through the full OAuth flow to obtain a token. You can now generate a token directly from the integration settings panel — next to the client secret — and copy it to the clipboard in one click. A toast confirms the copy. This makes it easy to test your integration against the GraFx APIs without any extra tooling.
The Templates and Components pages in GraFx Studio now support two additional sort options: Date created and Last modified. Both are also shown as columns in the list view, with times displayed in UTC to be consistent with the rest of the interface. This makes it easier to find recently updated assets in larger libraries.
Connectors installed via Connector CLI are now shown in a disabled state on the environment's Connectors page — the availability toggle is visible (showing its current state) but no edit actions are available. Hovering over the row shows a tooltip: "The connector is installed using Connector CLI tool. Editing is possible only via Connector CLI." The Add Connector button now always opens the Connector Hub flow directly, without an intermediate modal.
Connectors that expose only one authentication method can now have separate authentication configuration for server-side and browser-side use. This is useful for token injection scenarios — for example, setting the browser authentication to [None] while the server uses a configured auth method. Previously this option was only available for connectors that supported multiple auth methods.
The GraFx Labs application cards in the CHILI GraFx platform now correctly appear in a disabled state when the environment is a Sandbox, making it clear which apps are not available in that context.
Brand Kit asset management is now more flexible in two ways. First, if a media asset used in a Brand Kit has since been deleted from GraFx Media, the Brand Kit now shows a clear "Image not available" placeholder and offers Replace image and Delete image actions to resolve the broken reference. Second, the Replace image action is now available for all assets in a Brand Kit — not just deleted ones — so you can swap out any image without removing and re-adding it.
Adding a new paragraph by pressing Enter in description input fields — for example on integration description or connectors JWT private key — was silently ignored in some cases. This is now fixed.
The storage indicator on the CHILI GraFx homepage was showing incorrect values in some subscription configurations. It now correctly reflects the used and total storage for your subscription.
A clipping mask is a shape that crops an image so only the part inside the shape shows through — a common design technique in Photoshop®. GraFx Studio supports clipping masks natively on image frames, and version 1.4.0 of the GraFx Studio Exporter for Adobe® Photoshop® now preserves them on export: clipping masks set up in Photoshop® arrive in GraFx Studio as Studio-native clipping masks.
The exporter translates Photoshop® clipping setups into Studio-native clipping masks:
Built-in shapes — images clipped with a Rectangle, Ellipse, or Polygon are exported as Studio clipping shapes, including corner and stroke properties.
Custom paths — images clipped with a custom path are converted to a path-based clipping mask in Studio.
Stroke color and width on clipping masks are preserved, as are corner properties.
A preflight warning is shown for every document containing clipping masks
A clipping mask in Photoshop® is effectively an object with a fill, which is normally invisible. If the mask extends outside the clipped image, Photoshop® shows that overflowing fill — GraFx Studio does not. The plugin doesn't check whether a mask actually extends outside its frame, so it shows one global warning whenever the document contains at least one clipping mask. If your masks stay within their frames, you can safely ignore it.
Known limitation
Merged shapes, combined shapes, masks applied to a group of layers, and complex paths (for example multiple unconnected paths or a path containing another path) are not yet supported and are flagged in preflight.
The Swagger examples for the Media and Template GET endpoints have been refreshed to accurately reflect what the API returns today, making integrations easier to build and debug. See Making API Calls for how to access your environment's Swagger documentation.
You can now use TIFF images from GraFx Media in your templates and have them come through correctly in PDF output. When GraFx Studio generates a PDF for print, TIFF assets are served at full resolution with their original color space preserved — a CMYK TIFF stays CMYK all the way to the final PDF, keeping colors accurate for print production.
The Environment API settings endpoint now reports which CHILI GraFx applications are enabled for an environment — the first step toward configuring application availability per environment. See Reading the current version & settings for the response details.
Output files stay available to download for a limited time. Requesting one after it has expired now returns a clear "no longer available" response instead of a generic server error, so integrations can handle it gracefully. See Output Tasks → Availability.
When GraFx Studio generates a PDF, the output engine requests each placed image at full resolution for print. For JPG and PNG assets, the Environment API now returns the original source file, so the image's original color space and quality carry through to the final PDF — a CMYK JPEG stays CMYK all the way to print. This matches the behavior described in the media connector documentation.
A GraFx Studio template can contain multiple layouts — variants of the same template at different sizes or intents — and each layout can have multiple pages. Until now, the template preview endpoint always returned the preview of the default layout and page only. You can now request a preview for any specific (layout, page) combination of a multi-layout template, which unlocks per-layout and per-page preview thumbnails in downstream applications such as GraFx Experience.
Integrators and ISVs can use this to build experiences around a design system delivered as a single multi-layout template — one template that holds all the variants of a campaign, asset, or brand artifact (different sizes, channels, or page sequences). Instead of showing end users a single thumbnail and leaving them to guess at the rest, a portal can now render a thumbnail for every variant the design system contains, so the end user can preview and visually compare each layout and page before picking the one they want to personalize or export.
Two endpoints accept two new optional query parameters — layoutId and pageId:
GET /api/v1/environment/{environment}/templates/{templateId}/preview
GET /api/v1/environment/{environment}/templates/{templateId}/preview/{previewType}
Behavior:
Both parameters are optional and fully backwards-compatible — when both are omitted, the endpoint returns the default-layout / default-page preview, exactly as before.
When either is provided, the preview is rendered (or served from cache) for that specific (layout, page) combination.
When either is provided but the resolved rendering engine version is below 2.24.0, the endpoint returns 400 Bad Request with a message indicating the minimum supported engine version.