FileSystemException: C:Usersprojectswknd-testaem-guides-wknddispatchersrcconf. Click OK. 5 has enhanced its digital customer experience services by providing better content personalization, content fragment enhancements, and easier authoring. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. Ensure you adjust them to align to the requirements of your project. Tap in the Integrations tab. Persisted queries. Through GraphQL, AEM also exposes the metadata of a. Content Fragments. Usually, it relies on invalidation techniques that ensure that any content changed in AEM is properly updated in the Dispatcher. Learn how to define and use Content Fragments in Adobe Experience Manager (AEM) for use with GraphQL. Above the Strings and Translations table, click Add. You can create an MBean manager class to instantiate MBean services at runtime, and manage the service lifecycle. AEM Headless as a Cloud Service. Learn how and when to leverage AEM Author and Publish environments when using AEM’s GraphQL APIs. Dispatcher filters. This short post aims to collect valuable resources as a starting point to learn more about the AEM Dispatcher, an important and integral part of every AEM setup. Understanding how a query can be improved, whether through indexing or just refining the parameters, along with using AEM’s query performance tools can be crucial to good design. cloudpom. Tutorials by framework. Developer. Persisted queries are GraphQL queries that are created and stored on the Adobe Experience Manager (AEM) server. Dedicated Service accounts when used with CUG. The GraphQL API then can be implemented directly within the commerce solution using the tools and programming languages the commerce solution provides. Within AEM, the delivery is achieved using the selector model and . ) or getAdventureBySlug(. The AEM GraphQL API is a customized version based on the standard GraphQL API specification, specially configured to allow you to perform (complex) queries on your Content Fragments. Experience LeagueStep 2: Start the Dispatcher in a docker image with that deployment information. GraphQL Editor user interface does not let you scroll through all the persisted queries when there is a high number of queries (for example, more than. Project Configurations; GraphQL endpoints;. Browse the following tutorials based on the technology used. When configuring CORS on AEM Publish, ensure: The Origin HTTP request header cannot be sent to AEM Publish service, by removing the Origin header (if previously added) from the. Build a React JS app using GraphQL in a pure headless scenario. An end-to-end tutorial illustrating how to build-out and expose content using AEM's GraphQL APIs and consumed by an external app, in a headless CMS scenario. AEM Sites as a Cloud Service; Notable Changes to AEM Sites in AEM Cloud Service; Authoring. Created for: Intermediate. Additional resources can be found on the AEM Headless Developer Portal. Recommendation. AEM Publish service requires an AEM Dispatcher configuration to be added to the AEM Publish’s Dispatcher configuration. Learn how to configure AEM Publish Dispatcher filters for use with AEM GraphQL. Tap the Local token tab. To support AEM GraphQL persisted queries, add the following pattern: /graphql/execute. GraphQL_SImple. It will be used for application to application authentication. zip: AEM as a Cloud Service, the default build. An end-to-end tutorial illustrating how to build-out and expose content using AEM’s GraphQL APIs and consumed by an external app, in a headless CMS scenario. GraphQL API. . Explore AEM's GraphQL APIs using the built-in GrapiQL IDE. sling. Use the adventures-all query. Author and Publish Architecture. apps) deployment; OSGi bundle and config file deployment; Apache and Dispatcher configs deployment as a zip fileIn AEM 6. It includes support for Content. Experience deploying self-contained JavaScript applications in AEM. Adobe Experience Manager Assets keeps metadata for every asset. One could export an AEM page in JSON format via a REST call, however there are many fields in the JSON that the Spring Boot app does not use. Experience LeagueAEM as a Cloud Service provides a Developer Console for each environment that exposes various details of the running AEM service that are helpful in debugging. But it’s no secret that Magento’s built-in CMS doesn’t go far when your business scales. Learn how AEM automatically generates a GraphQL schema based on a Content Fragment model. Dispatcher changes not reflected in INT environment “AH01620: Could not open password file” in logs after configuring Basic Auth in AEM dispatcher; When are browsers counted in Analytics? Fine-Grained Priorities on Recommendations Activity; Recommendation is filtering criteria while creating activity Check out these additional journeys for more information on how AEM’s powerful features work together. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. In AEM 6. In this chapter, you persist the queries to AEM and learn how to use cache control on persisted queries. The AEM Publish tier is operated as a farm of AEM publish instances, each with their own content repository of published content. Also, the CIF add-on includes a local reverse proxy make the Commerce GraphQL endpoint available locally. Before going to. json extension. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. It needs to be provided as an OSGi factory configuration; sling. Notes WKND Sample Content. An end-to-end tutorial illustrating how to build-out and expose content using AEM and consumed by a native mobile app, in a headless CMS scenario. Nov 7, 2022. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. Unzip the downloaded aem-sdk-xxx. Explore AEM's GraphQL APIs using the built-in GrapiQL IDE. Dispatcher Tools are Docker-based and provides command line tools to transpile Apache HTTP Web Server and Dispatcher configuration files into a compatible formats and deploy them to Dispatcher. This server-to-server application demonstrates how to query content using AEM’s GraphQL APIs using persisted queries and print it on terminal. 13 All our GraphQL related query works fine in AUTHOR where as in Publish, we are getting this error: " - 556000. Learn how to configure AEM Publish Dispatcher filters for use with AEM GraphQL. A simple React app is used to query and display Team and Person content exposed by AEM’s GraphQL APIs. Sling uses a Java Content Repository, such as Apache Jackrabbit, or in the case of AEM, the CRX Content Repository as its data store. AEM code & content package (all, ui. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. Last update: 2023-04-21. The response of a GET request can be cached at the Dispatcher and Content Delivery Network (CDN) layers, ultimately improving the performance. TTL for the client (for example, a browser) 7200 seconds is the default (s-maxage=7200) TTL for the Dispatcher and CDN; also known as shared caches. Browse the following tutorials based on the technology used. When configuring CORS on AEM Publish, ensure: The Origin HTTP request header cannot be sent to AEM Publish service, by removing the Origin header (if previously added) from the. To act on the change, we need a GraphQL server that supports introspection. Tap the ellipsis next to the environment in the Environments section, and select Developer Console. 0. An end-to-end tutorial illustrating advanced concepts of Adobe Experience Manager (AEM) GraphQL APIs. They can also be used together with Multi-Site Management to. 1. AEM as a Cloud Service lets you capitalize on the AEM applications in a cloud-native way, so that you can: Scale your DevOps efforts with Cloud Manager: CI/CD framework, autoscaling, API connectivity, flexible deployment modes, code quality gates, service delivery transparency, and guided updates. xml. Learn to use Dispatcher for caching, load balancing, and improving security for your AEM server. What I wanted to ask is : Is there any way we can override any Model/Servlet that are being used in Graph QL connector and then accordingly could manipulate API response. Ashokkumar T A Senior Technology Architect at Infosys Technologies Limited. AEM Gem session Search forms made easy with the AEM querybuilder for a detailed overview of the. As per Adobe's documentation you should use GraphQL when you're trying to expose data from Content Fragments. Developed React components using MaterialUI, Routers for redirection, Personalization through Rules. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL Explorer. I have a bundle project and it works fine in the AEM. Adobe Experience Manager’s Cross-Origin Resource Sharing (CORS) facilitates non-AEM web properties to make client-side calls to AEM, both authenticated and unauthenticated, to fetch content or directly interact with AEM. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL Explorer. Using this path you (or your app) can: access the GraphQL schema, send your GraphQL queries, receive the responses (to your GraphQL queries). In Oak, indexes must be created manually under the oak:index node. Deploying a SPA that interacts AEM in a headless manner involves hosting the SPA and making it accessible via a web browser. Once a query has been persisted, it can be requested using a GET request and cached at the. json. Metadata is the information that describes. Created for: Intermediate. This tutorial explores how AEM’s GraphQL APIs and headless capabilities can be used to power the experiences surfaced in an external app. 122. There is a partner connector available on the marketplace. Developer. 3 and earlier versions where the /enableTTL only caches using max-age directive. supports headless CMS scenarios where external client applications render experiences using content managed in AEM. The configuration name is com. The OSGI configuration outlined in this document is sufficient for: Single-origin resource sharing on AEM Publish. Headless implementations enable delivery of experiences across platforms and channels at scale. AEM as a Cloud Service provides a scalable, secure, and agile technology foundation for Experience Manager Assets, Forms, and Screens enabling marketers and IT professionals to focus on delivering impactful experiences at scale. This configuration tells the Dispatcher to fetch this URL from it’s AEM instance it fronts every 300 seconds to fetch the list of items we want to allow through. Persisted queries are more performant than client-defined GraphQL queries, as persisted queries are executed using HTTP GET, which is cache-able at the CDN and AEM Dispatcher tiers. It provides a more flexible and efficient way to access. CIF enables AEM to access an Adobe Commerce instance and communicate with Adobe Commerce via GraphQL. Hence, AEM uses GraphQL to exchange commerce data with Adobe Commerce and with any commerce engine via I/O Runtime. Create Content Fragment Models. all-2. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. ) that is curated by the. It provides a more efficient, powerful, and flexible alternative to traditional REST. Can Product assets (images) be stored and referenced from AEM via Adobe Commerce admin? How can assets from Dynamic Media be consumed? No official AEM Assets – Adobe Commerce integration is available. js application demonstrates how to query content using AEM’s GraphQL APIs using persisted queries. The Dispatcher. As a AEM BackEnd Developer, I have experience in. GraphiQL is included in all environments of AEM (but will only be accessible/visible when you configure your endpoints). I added two demo classes to my project and reinstall bundle. 13+. For GraphQL queries with AEM there are a few extensions: If you require a single result: use the model name; for example, city; If you expect a list of results: add List to the model name; for example, cityList The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. AEM’s GraphQL APIs for Content Fragments. Using AEM as a Cloud Service SDK version: 2020. Author in-context a portion of a remotely hosted React. Through GraphQL, AEM also exposes the metadata of a Content Fragment. The GraphQL API in AEM is primarily designed to deliver AEM Content Fragment’s to downstream applications as part of a headless deployment. Open CRXDE Lite in your browser. js initializes and exports the AEM Headless Client used to communicate with AEM; src/api/usePersistedQueries. Tap Home and select Edit from the top action bar. Hybrid and SPA with AEM; SPA Introduction and Walkthrough; SPA. I add below config to the pom. Overview; Single-page app; Web Component; Mobile; Server-to-server; Configurations. Run the following command to build and deploy the entire project to AEM: $ mvn clean install -PautoInstallSinglePackage. 1. Created for: Beginner. and thus make the content more reusable… In this design pattern, the SPA application is completely separated from AEM, and content from AEM is consumed through headless GraphQL APIs as needed. This method can then be consumed by your own applications. TTL for the client (for example, a browser) 7200 seconds is the default (s-maxage=7200) TTL for the Dispatcher and CDN; also known as shared caches. Command line parameters define: The AEM as a Cloud Service Author. Dispatcher filters. 5 also includes several digital experience platform features such as GraphQL support, built-in Adobe Target integration, and a new user interface for the AEM Screens device. In AEM 6. The use of React is largely unimportant, and the consuming external application could be written in any framework. This fulfills a basic requirement of. View the source code on GitHub. How to analyze the performance issue. Tap the Technical Accounts tab. Example applications are a great way to explore the headless capabilities of Adobe Experience Manager (AEM). Open the model in editor. at org. 3 - Explore the AEM GraphQL API; 4 - Persisted GraphQL Queries; 5 - Client Application Integration; Headless First Tutorial. CMS Experience, especially Adobe Experience Manager (AEM)/CQ6 architecture. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. If your modeling requirements require further restriction, there are some other options available. Wondering if anyone noticed a similar behavior and share if there is any. 1. 5. 4-linux-x86_64-ssl-4. And so, with that in mind, we’re trying. CDN logging, which as its name indicates, performs logging at the CDN. Navigate to Tools > General > Content Fragment Models. GraphQL Query Best Practices (Dispatcher and CDN) The Persisted Queries are the recommended method to be used on publish instances as: they are cached; they are managed centrally by AEM as a Cloud Service; NOTE. 0-classic. Learn about the various data types used to build out the Content Fragment Model. 4. AEM Publish does not use an OSGi configuration. ViewsThe GraphQL endpoints are publicly accessible, but the content that they return depends on user's access. Using the GraphiQL IDE. host is set to the OSGi environment variable $[env:AEM_PROXY_HOST;default=proxy. In this chapter, you persist the queries to AEM and learn how to use cache control on persisted queries. Ensure that the version of Dispatcher Tools is provided via the AEM SDK version matching the AEM as a Cloud Service version. If you require a single result: ; use the model name; eg city . Leverage your professional network, and get hired. java can be found in the. Download Advanced-GraphQL-Tutorial-Starter-Package-1. The following sections describe the flexible mode file structure, local validation, debugging and migrating from legacy mode to the flexible mode. AEM Dispatcher Converter; AEM Modernization Tools; Sites. Created for: Beginner. A simple React app is used to query and display Team and Person content exposed by AEM’s GraphQL APIs. And until recently, it was only available for AEM-as-a-Cloud-Service users. It is the most popular GraphQL client and has support for major. Learn how AEM automatically generates a GraphQL schema based on a Content Fragment model. Learn how AEM can go beyond a pure headless use case, with options for in-context authoring and experience management. Topics: GraphQL API View more on this topic. Use the adventures-all query. By default all requests are denied, and patterns for allowed URLs must be explicitly added. Download the latest GraphiQL Content Package v. Use the. . In this chapter, you explore how AEM’s GraphQL APIs can drive the experience in an external application. json*" } Also, please review if you would want to avoid caching of the. Dispatcher filters. Code examples It appears that the GraphQL endpoint is blocked on the dispatcher. When configuring CORS on AEM Publish, ensure: The Origin HTTP request header cannot be sent to AEM Publish service, by removing the Origin header (if previously added) from the. AEM Dispatcher configurations in generic and AEMaaCS changes like. Developer. The basic operation of queries with GraphQL for AEM adhere to the standard GraphQL specification. Dispatcher filters. It is exposed at /api/assets and is implemented as REST API. The release date is July 14, 2023. For GraphQL queries with AEM there are a few extensions: . The WKND reference site is used for demo and training purposes and having a pre-built, fully. js initializes and exports the AEM Headless Client used to communicate with AEM; src/api/usePersistedQueries. The GraphQL API then can be implemented directly within the commerce solution using the tools and programming languages the commerce solution provides. x. See: GraphQL Persisted Queries - enabling caching in the Dispatcher; Use a Content Delivery Network (CDN) Recommendation. The following configurations are examples. Populates the React Edible components with AEM’s content. Solved: GraphQL API in AEM 6. The touch-enabled UI is the standard UI for AEM. react. Tap Create new technical account button. By default all requests are denied, and patterns for allowed URLs must be explicitly added. Bundle start failed. Imagine a standalone Spring boot application (outside AEM) needs to display content. Upload. sample will be deployed and installed along with the WKND code base. In this video you will: Learn how to enable GraphQL Persisted Queries. dispatcher. . smtp. 5 with Service Pack 16 or 17, when in the List view of sites with the “Workflow” column enabled, you cannot sort the list based on the items in that column. In conclusion, clearing the Dispatcher. Select the APIs blade. ”. This GraphQL API is independent from AEM’s GraphQL API to access Content Fragments. Learn how to configure AEM Publish Dispatcher filters for use with AEM GraphQL. Learn how AEM automatically generates a GraphQL schema based on a Content Fragment model. By default all requests are denied, and patterns for allowed URLs must be explicitly added. Example applications are a great way to explore the headless capabilities of Adobe Experience Manager (AEM). One of the core benefits of Akamai. The ability to customize a single API query allows you to retrieve and deliver the specific content that you want/need to render (as the. The content returned can then be used by your applications. With Adobe Experience Manager (AEM), you can use Content Fragments, together with the AEM GraphQL API (a customized implementation, based on standard GraphQL), to headlessly deliver structured content for use in your applications. The execution flow of the Node. Content Fragments. AEM as a Cloud Service and AEM 6. The. NOTE. When using the AEM React Editable Components with a SPA Editor-based React app, the AEM ModelManager SDK, as the SDK: Retrieves content from AEM. ReferrerFilter. Content Fragments are used, as the content is structured according to Content Fragment Models. With the new GraphQL client, we’re ready to help. 3. GraphQL Query Editor{#sites-graphql-query-editor-6519} ; GraphQL Editor user interface does not let you scroll through all the persisted queries when there is a high number of queries (for example, more than 25). Brands have a lot of flexibility with Adobe’s CIF for AEM. extensions must be set to [GQLschema]Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. 3. Please ensure that the previous chapters have been completed before proceeding with this chapter. Dispatcher cache files are updated unexpectedly | AEM; Unable to view dictionary element in UI (user and system) VLT RCP content synchronization fail; AEM: Collecting status information for troubleshooting in Web Console; Request queue becomes unpublished; Customer unable to delete records from custom schema; How to download. Persisted queries are GraphQL queries that are created and stored on the Adobe Experience Manager (AEM) as a Cloud Service server. The zip file is an AEM package that can be installed directly. The default cache-control values are:. ( 258ec3b Oct 31, 2023 68 commits . However if there are huge number of Content Fragments in the system for instance > 50000, please avoid using GraphQL queries as. getAdventures(. The AEM GraphQL API currently not supporting some of the GraphQL API features such as Mutations, Subscriptions, and Paging/Sorting, the API is read-only and the Asset API should be used to perform. Dispatcher cache files are updated unexpectedly | AEM; Unable to view dictionary element in UI (user and system) VLT RCP content synchronization fail; AEM: Collecting status information for troubleshooting in Web Console; Request queue becomes unpublished; Customer unable to delete records from custom schema; How to download. Learn how to create, update, and execute GraphQL queries. Tap Get Local Development Token button. Learn the recommended Best Practices for the setup and use of AEM GraphQL with Content Fragments. The benefit of this approach is cacheability. I have a bundle project and it works fine in the AEM. The default cache-control values are:. AEM Headless as a Cloud Service. 5. java and User. The completed SPA, deployed to AEM, can be dynamically authored with traditional in. There are several ways to control for how long a CDN caches a resource before it re-fetches it from Dispatcher. It is best practice and highly recommended to use persisted queries when working with the AEM GraphQL API. This class provides methods to call AEM GraphQL APIs. An implementation of the standard GraphiQL IDE is available for use with the GraphQL API of Adobe Experience Manager (AEM). GraphQL in Adobe Experience Manager (AEM) is a query language and runtime APIs that allows to request exactly the data which we need. References to other content, such as images or other Content Fragments can be dynamically inserted in-line within the flow of the text. Using the AEM JSON exporter, you can deliver the contents of any AEM page in JSON data model format. Aem dispatcher – tips & tricks. (Not on AEM as a cloud service) In our case, AEM will be the resource owner, 3rd party application will be client and OKTA will be the authorization. Build a React JS app using GraphQL in a pure headless scenario. Note that the integration is currently based on the GraphQL API of Magento 2. Bundle start command : mvn clean install -PautoInstallBundle. "servletName": "com. 5 | Persistent query updated with Graphql Introspection query. all-2. jarClick on the "Dispatcher Flush" agent to open the agent's configuration page. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. GraphQL Query Editor. The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. A quick introduction to GraphQL. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. org. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. Select WKND Shared to view the list of existing. In the next chapter, Explore GraphQL APIs, you will explore AEM’s GraphQL APIs using the built-in GrapiQL tool. How does cache invalidation for AEM Dispatcher work with AEM and commerce?This end-to-end tutorial continues the basic tutorial that covered the fundamentals of Adobe Experience Manager (AEM) Headless and GraphQL. Dispatcher filters. It allows easier categorization and organization of assets and it helps people who are looking for a specific asset. json*" } Also, please review if you would want to avoid caching of the GraphQL queries. Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. Q&A for work. Ensure you adjust them to align to the requirements of your. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. The touch-enabled UI includes: The suite header that: Shows the logo. $ cd aem-guides-wknd-spa. TIP. This tutorial uses a simple Node. When using an out-of-the-box implementation, the process described above should be sufficient to generate the Target Offer from the Experience Fragment and. By default all requests are denied, and patterns for allowed URLs must be explicitly added. (SITES-16008) ; The GraphQL Editor is not saving the publish status of persisted queries. Instead, CORS requests must be evaluated for allowed origins at the Dispatcher level. Dispatcher filters. aem-guides-wknd. Tap the Local token tab. content. From the AEM Start menu, navigate to Tools > Deployment > Packages. One could export an AEM page in JSON format via a REST call, however there are many fields in the JSON that the Spring Boot app does not use. Thanks in advance. You can also watch the talk presented at Apollo Space Camp 2020 by Khalil Stemmler here on YouTube. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. AEM Dispatcher is available as a plug-in for your web server. AEM as a Cloud Service GraphQL API used with Content Fragments is heavily based on the standard, open source GraphQL API. Further information can be found under the Dispatcher. Elasticsearch. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. [ERROR] Failed to execute goal org. Please ensure that the previous chapters have been completed before proceeding with this chapter. Enable developers to add automation. It is best practice and highly recommended to use persisted queries when working with the AEM GraphQL API. For authentication, the third-party service must retrieve an Access Token that can then be used in the GraphQL Request. Create Content Fragments based on the. This video is an overview of the GraphQL API implemented in AEM. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. 3. 9. Fill in the form: Choose a suitable display name (I chose Todo List ), The name will fill automatically with a suitable name, Select Synthetic GraphQL, Select the file that holds the GraphQL schema, Enter graphql as the API URL suffix. Persisted queries also in effect, define an API, and decouple the need for the developer to understand the details of each Content Fragment Model. Overview; 1 - Content modeling; 2 - AEM Headless APIs and React; 3 - Complex components; Deployments. Dispatcher filters. Below is a summary of how the React application is built, how it connects to AEM Headless to retrieve content using GraphQL persisted queries, and how that data is presented. Tap on the download button in the top-left corner to download the JSON file containing accessToken value, and save the JSON file to a safe location on your development machine. java:135) at org. Dynamic data is fetched client-side with web components directly via GraphQL APIs. Select main from the Git Branch select box. This feature is being gradually rolled out to customers in early September. gz file contains Dispatcher version 4. js implements custom React hooks return data from AEM. Overview. 2. Learn to use modern front-end tools, like a webpack dev server, to rapidly develop the SPA against the AEM JSON model API. Solved: I've been currently looking at the GraphQL API. In addition to pure AEM-managed content CIF, a page can. With the ability to extract metadata from files uploaded to Experience Manager Assets, metadata management integrates. Ensure that the version of Dispatcher Tools is provided via the AEM SDK version matching the AEM as a Cloud Service version. Hybrid and SPA with AEM; SPA Introduction and Walkthrough; SPA WKND Tutorial; Getting Started. This is the same framework used to translate other AEM content, such as Pages, Experience Fragments, Assets, and Forms. This allows for grouping of fields so. GraphQL Editor user interface does not let you scroll through all the persisted queries when there is a high number of queries (for example, more than. Learn to use the Experience Manager desktop app to connect repositories and desktop applications to provide faster access to resources and streamlined workflows. zip file. Enable GraphQL pre-caching and configure dispatcher/ CDN cache for persisted queries; If Dynamic Media is enabled, employ web-optimized image delivery.