The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. Content Fragments in AEM provide structured content management. 5 the GraphiQL IDE tool must be manually installed. Last update: 2023-04-21. Recommendation. Additionally, enable the GraphQL endpoint configurations that can be consumed by external applications to fetch headless content. The Dispatcher is Adobe’s tool for both caching and/or load balancing. $[env:AEM_PROXY_HOST] is a reserved variable that AEM as a Cloud Service maps to the internal proxy. The AEM Project Archetype generates a project primed for AEM’s integration with a Remote SPA, but requires a small, but important adjustment to auto-generated AEM page structure. Learn to use the delegation pattern for extending Sling Models. Experience LeagueDispatcher; AEM; Usually, Dispatcher is the next server that might serve the document from a cache and influence the response headers returned to the CDN server. at org. The content resides in AEM. Dispatcher filters. Within AEM, the delivery is achieved using the selector model and . Updating your Content Fragments for optimized GraphQL Filtering; Authentication for Remote AEM GraphQL Queries on Content Fragments; AEM GraphQL API with Content Fragments - Sample Content and Queries; Hybrid and SPA AEM Development. Select Full Stack Code option. I add below config to the pom. You can create an MBean manager class to instantiate MBean services at runtime, and manage the service lifecycle. AEM GraphQL API requests. CIF enables AEM to access an Adobe Commerce instance and communicate with Adobe Commerce via GraphQL. 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. Search for “GraphiQL” (be sure to include the i in GraphiQL ). AEM GraphQL API is primarily designed to deliver Content Fragment data to downstream applications as a part of headless deployment. With the ability to extract metadata from files uploaded to Experience Manager Assets, metadata management integrates. This issue is seen on publisher. For production deployments it is strongly recommended to setup a reverse proxy to the commerce GraphQL endpoint via the AEM Dispatcher or at other network layers (like CDN). You can also watch the talk presented at Apollo Space Camp 2020 by Khalil Stemmler here on YouTube. Author in-context a portion of a remotely hosted React. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. For AEM on-prem installations, this project requires the AEM Commerce Add-On for AEM 6. AEM Logging. GraphQL is: “…a query language for APIs and a runtime for fulfilling those queries with your existing data. CMS Experience, especially Adobe Experience Manager (AEM)/CQ6 architecture. Developer. Whenever a Content Fragment Model is created or updated, the schema is translated and added to the “graph” that makes up the GraphQL. Use the adventures-all query. In this video you will: Understand the power behind the GraphQL language. Content Fragments are used, as the content is structured according to Content Fragment Models. apache. The Dispatcher. AEM hosts;. 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. The basic operation of queries with GraphQL for AEM adhere to the standard GraphQL specification. This tutorial explores how AEM’s GraphQL APIs and headless capabilities can be used to power the experiences surfaced in an external app. 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. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. Follow • 0 likes •. Created for: Intermediate. AEM dispatcher: Filters, ignoreUrlParams, virtualhosts, rewrites by Aanchal Sikka Overview In this extensive blog post, we'll delve into the topics of filters, ignoreUrlParams, virtual hosts, and rewrites, providing a detailed examination of their best practices and simplifying their operational me. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. at org. For an end-to-end example of building your own single-page application that is editable with AEM starting with project setup through application routing, see the WKND SPA Tutorials: Getting Started with the AEM SPA Editor and Angular. An end-to-end tutorial illustrating how to build. Headless implementation forgoes page and component. Dispatcher Setup AEM as a Cloud Service AEM Coders Hub #aem #aemdeveloper #aemcommunity #aem65 #aemcoral #adobe #adobeaemdeveloper #api #java… Liked. Deploying an AEM Headless application requires attention to how AEM URLs are constructed to ensure the correct AEM host/domain is. dispatcher. This fulfills a basic requirement of GraphQL. GraphQL Query Editor. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. AEM makes an environment fast and dynamic, because it also serves as a load-balancing tool. If a non-standard GraphQL endpoint is used on AEM side, the endpoint may contain a full path: aemHeadlessClient = new AEMHeadlessClient. GraphQL API. The following file naming convention is used: dispatcher-<web-server>-<operating-system>-<dispatcher-version-number>. Adobe Experience Manager Assets keeps metadata for every asset. Available for use by all sites. From the command line navigate into the aem-guides-wknd-spa. AEM hosts;. Overview. json extension. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. Elasticsearch. ViewsThe GraphQL endpoints are publicly accessible, but the content that they return depends on user's access. To support AEM GraphQL persisted queries, add the following pattern: /graphql/execute. Enable GraphQL pre-caching and configure dispatcher/ CDN cache for persisted queries; If Dynamic Media is enabled, employ web-optimized image delivery. impl. The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. sh out docker. 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. 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. The GraphQL API in AEM is primarily designed to deliver AEM Content Fragment’s to downstream applications as part of a headless deployment. 1. Select Edit from the mode-selector in the top right of the Page Editor. org. Tutorials by framework. For server-to-server authentication, you can use Service Credentials of AEM (Access tokens). apps) deployment; OSGi bundle and config file deployment; Apache and Dispatcher configs deployment as a zip fileIn AEM 6. By default all requests are denied, and patterns for allowed URLs must be explicitly added. Overview; 1 - Content modeling; 2 - AEM Headless APIs and React; 3 - Complex components; Deployments. Integration of APIs such as Axios, fetch, GraphQL which are used to integrate with applications like AEM, SDL, Solr & other intranet applications. While the AEM GraphQL API is a great idea for exposing content fragments, out of the box it does only that. sites. Learn to use modern front-end tools, like a webpack dev server, to rapidly develop the SPA against the AEM JSON model API. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. 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. Created for: Intermediate. Updating your Content Fragments for optimized GraphQL Filtering; Authentication for Remote AEM GraphQL Queries on Content Fragments; AEM GraphQL API with Content Fragments - Sample Content and Queries; Hybrid and SPA AEM Development. js application is as follows: The Node. An aspiring Adobe AEM and Open Source developer with a passion for web development and a strong foundation in software development technologies. Using the AEM JSON exporter, you can deliver the contents of any AEM page in JSON data model format. This fulfills a basic requirement of. Learn how to create GraphQL queries to return content from Adobe Experience Manager (AEM) and how to use the GraphiQL tool to quickly test, refine, and debug queries. Client type. API to client applications. tar. github. security. |. Experience League1. AEM’s GraphQL APIs for Content Fragments. An end-to-end tutorial illustrating advanced concepts of Adobe Experience Manager (AEM) GraphQL APIs. Learn how to query a list of. Get started with Adobe Experience Manager (AEM) and GraphQL. The default cache-control values are:. GraphQL only works with content fragments in AEM. (FilterHandler. Learn about the various data types used to build out the Content Fragment Model. The following configurations are examples. The AEM Headless Client for JavaScript is used to execute the GraphQL persisted queries that power the app. Ensure that the version of Dispatcher Tools is provided via the AEM SDK version matching the AEM as a Cloud Service version. json. You need to send the queries from the client, you can just send strings but if you want more comfort and caching you'll use a client library -> extra code in your client. Usually, it relies on invalidation techniques that ensure that any content changed in AEM is properly updated in the Dispatcher. The documentation folder contains some code that is used to generate a subset of the Magento schema that covers all the queries required by the CIF. sling. tunnel] so it is routed through the egress. This method can then be consumed by your own applications. 3 - Explore the AEM GraphQL API; 4 - Persisted GraphQL Queries; 5 - Client Application Integration; Headless First Tutorial. jar file to install the Author instance. Experience LeagueI added GraphQL to the bundle in the AEM and it caused bundle start failed. 4-linux-x86_64-ssl-4. The AEM GraphQL API allows you to update the default cache-control parameters to your queries in order to improve performance. Repository Browser is a powerful tool that provides visibility into AEM’s underlying data store, allowing for easy debugging of AEM as a Cloud Service environment. On the Source Code tab. In the Exploerer Pane, right-click the component where you want to create the file, select Create, then Create File. Learn how to configure AEM Publish Dispatcher filters for use with AEM GraphQL. GraphiQL is included in all environments of AEM (but will only be accessible/visible when you configure your endpoints). This is achieved using 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. 1. Tutorials. Rich text with AEM Headless. d/filters":{"items":[{"name":"default_filters. The GraphiQL tool enables developers to create and test queries against content on the current AEM environment. Getting Started. Learn best practices for headless delivery with an AEM Publish environment. #aem #cms #dispatcherAEM as a Cloud Service - Local Development Environment setup - @h9ioHow to use Re-Fetching Flush Agent in Adobe Experience Manager(AEM). Schemas on publish are the most critical as they provide the foundation for live delivery of Content Fragment. Submit Search. Download Advanced-GraphQL-Tutorial-Starter-Package-1. Unpack the Dispatcher Tools into ~/aem-sdk/dispatcher. I have a bundle project and it works fine in the AEM. Developer. json by @rismehta in #974; Update dispatcher configuration to dispatcher version 2. The Single-line text field is another data type of Content. If a caching issue is suspected, you should republish the pages in question and ensure that a virtual host is available that matches the ServerAlias localhost, which is required for Dispatcher cache invalidation. In such cases there is the danger that multiple copies of the same JS library may be included in the final HTML output. impl. 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. 3 and earlier versions where the /enableTTL only caches using max-age directive. any text file, though you can change the name and location of this file during installation. GraphQL for AEM - Summary of Extensions. Enable developers to add automation. With AEM, a production environment often consists of two different types of instances: an Author and a Publish instances. x. DuoTone, Lab, and Indexed color spaces are not supported. Adobe AEM Magento Integration: A Tandem of CMS and Ecommerce. Deploying a SPA that interacts AEM in a headless manner involves hosting the SPA and making it accessible via a web browser. The GraphQL API then can be implemented directly within the commerce solution using the tools and programming languages the commerce solution provides. Worried about AEM dispatcher set up in the local environment here is the easy solution with docker. The following are examples of possible approaches for constructing URLs for AEM GraphQL API and image requests, for several popular headless frameworks and platforms. The AEM Headless quick setup gets you hands-on with AEM Headless using content from the WKND Site sample project, and a React App that consumes the content over AEM Headless GraphQL APIs. The GraphQL API of AEM provide a powerful query language to expose data of Content Fragments to downstream applications. GraphiQL is included in all environments of AEM (but will only be accessible/visible when you configure your endpoints). Linux: use the top command to check CPU utilization. Experience LeagueManage metadata of your digital assets. content. To determine the correct approach for managing build dependent configurations, reference the AEM Headless app’s framework (for example, React, iOS, Android™, and so on) documentation, as the approach varies by framework. References to other content, such as images or other Content Fragments can be dynamically inserted in-line within the flow of the text. API to client applications. The AEM GraphQL API allows you to update the default cache-control parameters to your queries in order to improve performance. Persisted queries also in effect, define an API, and decouple the need for the developer to understand the details of each Content Fragment Model. While client-side GraphQL queries can also be executed using HTTP POST requests, which cannot be cached, persisted queries can be cached. 2. Developer. February 23, 2023 · 4 mins. Me too Reply 1 Accepted Solution Correct answer by Daniel_Gordon Employee Advisor 9/22/21 8:53:01 AM. View the source code on GitHub. With your AEM publish server running on your macOS computer, listening on port 4503, you can run start the Dispatcher in front of that server as follows: $ docker_run. A project template for AEM-based applications. Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. There is a partner connector available on the marketplace. The following are examples of possible approaches for constructing URLs for AEM GraphQL API and image requests, for several popular headless frameworks and platforms. Open the Program containing the AEM as a Cloud Service environment to integrate set up the Service Credentials for. 5 the GraphiQL IDE tool must be manually installed. GraphQL Model type ModelResult: object . Dispatcher filters. My name is Abhishek Dwevedi. In the basic tutorial multi-step GraphQL tutorial, you used the GraphiQL Explorer to test and refine the GraphQL queries. maven. 1) Find nodes by type under a specific path. 1. Build a React JS app using GraphQL in a pure headless scenario. Let’s create some Content Fragment Models for the WKND app. Developed React components using MaterialUI, Routers for redirection, Personalization through Rules. 0+ version supports GraphQL API to expose the Content Fragment to enable the headless content experience. 122. Allowing for bulk delivery of exactly what is needed for rendering as the response to a single API query. localhost:4503 8080. Code. 1. The classic UI was deprecated with AEM 6. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. To do this, set the JSP session flag to True: <%@ page session="true"%>. 8 and above Steps to run the dispatcher in docker container Once the docker is installed in local start the docker using command line or using docker desktop. The Dispatcher is a caching and security layer in front of Adobe Experience Manager Publish environments. Topics: GraphQL API View more on this topic. Before calling any method initialize the instance with GraphQL endpoint, GraphQL serviceURL and auth if needed Typedefs Model: object . Unzip the SDK, which. Like previous versions of AEM, publishing or unpublishing pages clears the content from the Dispatcher cache. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. A quick introduction to GraphQL. <file-format> For example, the dispatcher-apache2. AEM Publish service requires an AEM Dispatcher configuration to be added to the AEM Publish’s Dispatcher configuration. Example: # GraphQL Persisted Queries & preflight requests /0061 { /type "allow" /method '(GET|POST|OPTIONS)' /url "/graphql/execute. 5 comes bundled with, which is targeted at working with content fragments exclusively. AEM Headless supports a offset/limit and cursor-based pagination queries to smaller subsets of a larger result set. This feature is being gradually rolled out to customers in early September. adobe aem-guides-wknd-graphql main 18 branches 0 tags Code davidjgonzalez Memo-ized GQL useEffects params so they do not continuously make XHR. The content in AEM is managed through Content Framnents and exposed through GraphQL API as a JSON. This is your 24 hour, developer access token to the AEM as a Cloud Service environment. Retrieving an Access Token. The zip file is an AEM package that can be installed directly. 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. 5. Local Dispatcher Runtime. 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. Learn about Akamai's caching. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. {"payload":{"allShortcutsEnabled":false,"fileTree":{"dispatcher/src/conf. Using GraphQL on the other hand does NOT have the extra unwanted data. In this chapter, you persist the queries to AEM and learn how to use cache control on persisted queries. This feature is core to the AEM Dispatcher caching strategy. The basic operation of queries with GraphQL for AEM adhere to the standard GraphQL specification. SlingSchemaServlet. AEM Dispatcher is the first level cache within the AEM service, before CDN cache. AEM as a Cloud Service and AEM 6. Tap Create new technical account button. Learn more about Teamsto gain points, level up, and earn exciting badges like the new{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/main/resources/META-INF":{"items":[{"name":"maven","path":"src/main/resources/META-INF/maven","contentType. To share with the community, we talked to the AEM support team and found that it was an issue with 6. 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. Enter the file Name including its extension. js initializes and exports the AEM Headless Client used to communicate with AEM; src/api/usePersistedQueries. 2. The Dispatcher Tools, part of the AEM as a Cloud Service SDK, can be downloaded from a zip file at the Software Distribution portal. The configured AEM service’s host/domain is then used to construct the AEM GraphQL API URLs and Image URLs. If you require a single result: ; use the model name; eg city . AEM Dispatcher is the first level cache within the AEM service, before CDN cache. 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. 5. 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. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. . In the Comment box, type a translation hint for the translator if necessary. Configuring Stores and CatalogsThe version of Dispatcher Tools is different from that of the AEM SDK. GraphQL API. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that. To give an example when I hit below url to fetch list of all persisted queries . CDN CachingContribute to adobe/aem-headless-client-java development by creating an account on GitHub. By default all requests are denied, and patterns for allowed URLs must be explicitly added. 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. How does cache invalidation for AEM Dispatcher work with AEM and commerce? Adobe recommends. The AEM Headless quick setup gets you hands-on with AEM Headless using content from the WKND Site sample project, and a sample React App (a SPA) that. Double-click the aem-author-p4502. AEM provides capabilities to convert queries (both types) to Persisted Queries, that can be cached by Dispatcher and the CDN. In conclusion, clearing the Dispatcher. Sample Sling Model Exporter GraphQL API. The links in these attributes are run through the AEM Link Externalizer publishLink() to recreate the URL as if it was on a published instance, and as such, publicly available. Developer. Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. ) that is curated by the. The content returned can then be used by your applications. Project Configurations; GraphQL endpoints;. Configuration Browsers — Enable Content Fragment Model/GraphQL. Register now! SOLVEDThe Dispatcher is Adobe Experience Manager’s caching and/or load-balancing tool that helps realize a fast and dynamic Web authoring environment. $ cd aem-guides-wknd-spa. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach. 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. Designed for flexibility, GraphQL delivers the exact content requested and nothing more. Hybrid and SPA with AEM; SPA Introduction and Walkthrough; SPA. aem. A local AEM Publish Service is important as it integrates with AEM SDK’s Dispatcher tools and allows developers to smoke-test and fine-tune the final end-user facing experience. 5 version, I have installed grpahqli-0. The touch-enabled UI includes: The suite header that: Shows the logo. The benefit of this approach is cacheability. Run the following command to build and deploy the entire project to AEM: $ mvn clean install -PautoInstallSinglePackage. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. Anatomy of the React app. The AEM GraphQL API allows you to update the default cache-control parameters to your queries in order to improve performance. 12 which is fixed in the latest version but instead of StringFilterExpression, we need to use StringFilter. Instead of configuring and maintaining Indexes on single AEM instances, the Index configuration has to be specified. If your modeling requirements require further restriction, there are some other options available. Unzip the downloaded aem-sdk-xxx. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. Next, we’ll use the AEM Headless SDK to retrieve Content Fragment data from AEM’s GraphQL APIs. AEM Gem session Search forms made easy with the AEM querybuilder for a detailed overview of the. Ensure that the version of Dispatcher Tools is provided via the AEM SDK version matching the AEM as a Cloud Service version. Now let’s see a high-level Dispatcher module architecture. The response of a GET request can be cached at the dispatcher and CDN layers, ultimately improving the performance of the requesting client application. The default cache-control values are:. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL Explorer. Dispatcher filters. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that should reach AEM do reach AEM. Currently t he GraphQL feature is enabled by default only on the AEM SDK from 2021-02-04 or newer on AEM as Cloud Service. Review existing models and create a model. any","path":"dispatcher/src/conf. apache. AEM and Adobe Commerce are seamlessly integrated using the Commerce Integration Framework (CIF). This document describes how Akamai caches content on its edge servers and how you can control this caching. In previous releases, a package was needed to install the GraphiQL IDE. Ensure you adjust them to align to the requirements of your project. Created for: Beginner. TIP. Documentation AEM AEM Tutorials AEM Headless Tutorial Dispatcher filters for AEM GraphQL. It will be used for application to application authentication. 1. The content in AEM is managed through Content Framnents and exposed through GraphQL API as a JSON. 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. Adobe Experience Manager as a Cloud Service uses AEM Publish Dispatcher filters to ensure only requests that. Purging cached pages and assets from Akamai when replicated from AEM in a similar manner as Dispatcher-cached resources. Teams. AEM has a large list of available content types and you’re able to select zero or more. graphql. adobe. AEM Brand Portal. Nov 7, 2022. 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. 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. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. You need to define the schema beforehand =>. js application is invoked from the command line. Install GraphiQL IDE on AEM 6. A “Hello World” Text component displays, as this was automatically added when generating the project from the AEM Project archetype. 11 Like 1 Like Translate 2 people had this problem. Using AEM as a Cloud Service SDK version: 2020. Dispatcher filters. In this video you will: Learn how to create and define a Content Fragment Model. The execution flow of the Node. A modern content delivery API is key for efficiency and performance of Javascript-based frontend applications. Dedicated Service accounts when used with CUG. Do NOT attempt to set the AEM_PROXY_HOST via Cloud. Note on dispatcher: There is an issue with AEM Dispatcher v4. Tap Get Local Development Token button. 4. Experience LeagueThe CIF Add-On is also available for local development with AEM SDK from Software Distribution portal. 9. Wondering if anyone noticed a similar behavior and share if there is any. This document is part of a multi-part tutorial. 5. Today’s top 420 Dispatcher jobs in British Columbia, Canada. Learn how to configure AEM Publish Dispatcher filters for use with AEM GraphQL. registerService method. The basic operation of queries with GraphQL for AEM adhere to the standard GraphQL specification. Further Reference. Please check the filter section to assure that its allowed. zip. Experience deploying self-contained JavaScript applications in AEM. One of the core benefits of Akamai. TIP. Experience LeagueAdobe Experience Manager (AEM) Gems is a series of technical deep dives into Adobe Experience Manager delivered by Adobe experts. Learn how to define and use Content Fragments in Adobe Experience Manager (AEM) for use with GraphQL. GraphQL query is an API for headless architecture to deliver content fragment data in the form of JSON. allowedpaths specifies the URL path patterns allowed from the specified origins. This means that even when private or s-maxage directives are set it would still cache if max-age is set. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment.