aem graphql authentication. GraphQL Authenticating Client - Authentication is the process or action of verifying the identity of a user or a process. aem graphql authentication

 
GraphQL Authenticating Client - Authentication is the process or action of verifying the identity of a user or a processaem graphql authentication  Resolution

See Authentication for Remote AEM GraphQL Queries on Content Fragments. The GraphQL API in AEM is primarily designed to deliver AEM Content Fragment’s to. Discover how 'Persisted Queries' and 'GraphQL' simplify data retrieval and boost. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. Manage AEM Author access using Adobe IMS via the Adobe Admin Console. The following tools should be installed locally: JDK 11;. 5. Step 2. GraphQL API. AEM GraphQL API requests. The following configurations are examples. Dedicated Service accounts when used with CUG. The sample React app has three main parts: The src/api folder contains files used to make GraphQL queries to AEM. Query for fragment and content references including references from multi-line text fields. . Unlocking the potential of headless content delivery. By utilizing the AEM Headless SDK, you can easily query and fetch Content Fragment data using GraphQL. Net approach there is no issue. With GraphQL, you model your business domain as a graph by defining a schema; within your schema, you define different types of nodes and how they connect/relate to one another. This feature can be used to reduce the number of GraphQL backend calls by a large factor. Using a REST API introduce challenges: We have a business requirement where we need to secure AEM graphql endpoint with OKTA. Explore the AEM GraphQL API. Metadata is the information that describes a Content Fragment, such as the title of a Content Fragment, the thumbnail path, the description of a Content Fragment, the date it was created, amongst others. For authentication, we have passed an Authorization header with a token. If you expect a list of results: Manage GraphQL endpoints in AEM. The Create new GraphQL Endpoint dialog will open. 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. Adobe Experience Manager as a Cloud Service’s Cross-Origin Resource Sharing (CORS) facilitates non-AEM web properties to make browser-based client-side calls to AEM’s GraphQL APIs, and other AEM Headless resources. An end-to-end tutorial illustrating how to build. The AEM Headless quick setup gets you hands-on with AEM Headless using content from the WKND Site. Querying AEM using GraphQL using persisted queries (as opposed to client-defined GraphQL queries) allows developers to persist a query (but not its results) in AEM, and then request the query to be executed by name. But if you want to develop all endpoint in GraphQL including authentication that is also fine. src/api/aemHeadlessClient. js v18; Git; 1. js app. The GraphQL API in AEM allows you to expose Content Fragment data to downstream applications. AEM GraphQL API requests. The benefit of this approach is cacheability. GraphQL, a flexible query language for APIs, provides an efficient and precise way to request specific data from your AEM instance, enabling a seamless integration between React and AEM. Implement to run AEM GraphQL persisted queries. 1 Accepted Solution Correct answer by Jörg_Hoh Employee Advisor 09-09-2022 07:12 PDT If you want to implement that on the publish layer, you should use. Browse the following tutorials based on the technology used. The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. Learn how to create relationships between Content Fragment Models in Adobe Experience Manager (AEM) and how to leverage these relationships in GraphQL queries. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. The GraphiQL tool enables developers to create and test queries against content on the current AEM environment. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL Explorer. If your modeling requirements require further restriction, there are some other options available. In this video you will: Learn how to enable GraphQL Persisted Queries. Project Configurations; GraphQL endpoints; Content Fragment. Tap Create new technical account button. TIP. Rest APIs require the client to send multiple requests to different endpoints on the API to query data from the backend database. Project Configurations; GraphQL endpoints;. Prerequisites. Your options are twofold: Let the web server (e. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. 1. This end-to-end tutorial continues the basic tutorial that covered the fundamentals of Adobe Experience Manager (AEM) Headless and GraphQL. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. Learn how to enable, execute queries against, and publish and secure GraphQL endpoints. The Single-line text field is another data type of Content. For more information, see "About authentication with SAML single sign-on" and "Authorizing a personal access token for use with SAML single sign-on. js. Questions that have arisen: Q: “How is the GraphQL API for AEM different from Query Builder API?” A: “The AEM GraphQL API offers total control on the JSON output, and is an industry standard for querying content. Resolution Resolution #1. Reply Delete GraphQL for AEM - Summary of Extensions {#graphql-extensions} . allowedpaths specifies the URL path patterns allowed from the specified origins. Recommendation. Please ensure that the previous chapters have been completed before proceeding with this chapter. You can define that schema in something called GQL, GraphQL Query Language but you can also decorate classes to respond to. This is a core feature of the AEM Dispatcher caching strategy. When a @relation. Learn how Experience Manager as a Cloud Service works and what the software can do for you. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. Install GraphiQL IDE on AEM 6. AEM has a large list of available content types and you’re able to select zero or more. This React application demonstrates how to query content using AEM’s GraphQL APIs using persisted queries. To get the third page of results in a ten-row table, you would do this:GraphQL Best Practices. Step 1: Adding Apollo GraphQL to a Next. Understand the authentication required for Remote AEM GraphQL queries in order to secure your headless content delivery. 5 -Best, PradeepDeveloper. AEM exposes a variety of HTTP endpoints that can be interacted with in a headless manner, from GraphQL, AEM Content Services to Assets HTTP API. Sign In. Authentication using Auth0. Created for: Beginner. Select Full Stack Code option. Often, these headless consumers may need to authenticate to AEM in order to access protected content or actions. In this chapter, you use the GraphiQL Explorer to define more advanced queries to gather data of the. js file which will be the main file:Sorted by: 63. This fulfills a basic requirement of GraphQL. We recommend upgrading from 3. pg_graphql uses Postgres' search_path and permissions system to determine which schemas and entities are exposed in the GraphQL schema. Authorization is then determining what a given user has permission to do or see. The advanced tutorial illustrates in-depth aspects of working with Content Fragment Models, Content Fragments, and the AEM GraphQL persisted queries, including using the GraphQL persisted queries in a client application. See Authentication for Remote AEM GraphQL Queries on. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. Example: if one sets up CUG, the results returned will be based on user's session. express or nginx) take care of authentication. Also, review How to execute a Persisted query, Using query variables, and Encoding the query URL for use by an app to learn persisted query execution by client applications. Prerequisites. js v18; Git; 1. js page with getStaticProps. Using this path you (or your app) can: receive the responses (to your GraphQL queries). 2. Please ensure that the previous chapters have been completed before proceeding with this chapter. In this design pattern, the SPA application is completely separated from AEM, and content from AEM is consumed through headless GraphQL APIs as needed. The following example uses the az apim api import command to import a GraphQL passthrough API from the specified URL to an API Management instance named apim-hello-world. Ensure you adjust them to align to the requirements of your. js application demonstrates how to query content using AEM’s GraphQL APIs using persisted queries. The following configurations are examples. d) To use the authentication token, your future requests. Prerequisites. Experience League. Token-based authentication to AEM as a Cloud Service AEM exposes a variety of HTTP endpoints that can be interacted with in a headless manner, from GraphQL, AEM Content Services to Assets HTTP API. Please ensure that the previous chapters have been completed before proceeding with this chapter. Created for: Beginner. Project Configurations; GraphQL endpoints; Content Fragment. Tap Get Local Development Token button. GraphQL has become the new normal for developing APIs. Developer. Tap in the Integrations tab. An implementation of the standard GraphiQL IDE is available for use with the GraphQL API of Adobe Experience Manager (AEM). Next, we’ll use the AEM Headless SDK to retrieve Content Fragment data from AEM’s GraphQL APIs. Recommendation. Your GraphQL API probably needs to control which users can see and interact with the various data it provides. Step 1: Validate the username, password, and that the user exists: If the issue only happens with one or a few users, then it could be that the wrong usernames or passwords are being used or the users don’t exist in AEM. On February 25, 2022, GitLab for CVE-2021-4191, which is an instance of CWE-359, "Exposure of Private Personal Information to an Unauthorized Actor. Authentication methods in Microsoft Entra ID include password and phone (for example, SMS and voice calls), which are manageable in Microsoft Graph today, among many others such as FIDO2 security keys and the Microsoft Authenticator app. See Authentication for Remote AEM GraphQL Queries on Content. AEM’s GraphQL queries can be written to provide URLs to images based on where the image is referenced from. Review the AEMHeadless object. Enable Authentication for endpoints; Share GraphQL Endpoint and query details for external system; Content Architect: The content author defines the content model structure, relationship to share the content with external systems, also creates the required Content Fragment Models in AEM. 1. Search for “GraphiQL” (be sure to include the i in GraphiQL ). Project Configurations; GraphQL endpoints; Content Fragment. Learn how AEM can go beyond a pure headless use case, with options for in-context authoring and experience management. . Depending on the type selected, there are three flavors available for use in AEM GraphQL: <code>onlyDate</code>, <code>onlyTime</code>,. We are going to spin off a simple GraphQL server using express-graphql and get it connected to a MySQL database. In the context of local AEM author instance, I would like to iterate again that there is no authentication on GraphQL explicitly (for us to disable anything). . But it’s no secret that Magento’s built-in CMS doesn’t go far when your business scales. Through GraphQL, AEM also exposes the metadata of a Content Fragment. Learn about the different data types that can be used to define a schema. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. Explore AEM’s GraphQL capabilities by building. Tests for running tests and analyzing the. 11382 is related to null values in filter conditions on multi-values fields. Then create the server. Control access to your GraphQL API. In this example, we’re restricting the content type to only images. If creating a keystore, keep the password safe. Overview; 1 - Defining Content Fragment Models; 2 - Authoring Content Fragments; 3 - Explore GraphQL APIs; 4 - Build a React app; Advanced Tutorial. Other than that, Queries and Mutations are the same, they’re both just strings that map. . These are defined by information architects in the AEM Content Fragment Model editor. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. 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. Resolution. Authorization patterns in GraphQL are quite different than in a REST API. 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 consumes the content over AEM Headless GraphQL APIs. “Achieving this timeframe in a highly regulated environment like healthcare is phenomenal. Create or open the keystore. Please ensure that the previous chapters have been completed before proceeding with this chapter. For example if you want to use the HMAC. Questions that have arisen: Q: “How is the GraphQL API for AEM different from Query Builder API?” A: “The AEM GraphQL API offers total control on the JSON output, and is an industry standard for querying content. Learn how to create, update, and execute GraphQL queries. This is your 24 hour, developer access token to the AEM as a Cloud Service environment. If you still require automatic generation of the schema then take a look at the GraphQL Compose or GraphQL Core Schema projects which have implemented automatic schema generation. Both GraphQL and Next. js application is as follows: The Node. Explore how an external application can programmatically authenticate and interact with AEM as a Cloud Service over HTTP using Local Development Access Tokens and Service Credentials. Persisted queries are queries that are stored on the Adobe Experience Manager (AEM) server. Review Adventures React Component This tutorial uses a simple Node. Can you explain how we can used token based authentication for graphql api by third party application for aem 6. In this video you will: Understand the power behind the GraphQL language. Okta is a cloud service that allows developers to create. For authentication, the third-party service needs to authenticate, using the AEM account username and password. To get started with GraphQL queries and how they work with AEM Content Fragments, it helps to see some practical examples. Video Session: Support Me! Buy Me A Coffee PayPal Me. This flow gives. 2. Create Content Fragments based on the. js App. Without Introspection and the Schema, tools like these wouldn't exist. I want to set-up authentication on GraphQL endpoint before sharing it with third-party Apps. AEM GraphQL API requests. Developer. Learn about AEM’s GraphQL capabilities through the in-depth walk-through of Content Fragments and and AEM’s GraphQL APIs and development tools. 5 . js initializes and exports the AEM Headless Client used to communicate with AEM; src/api/usePersistedQueries. If you require a single result: ; use the model name; eg city . This Next. Authorization is then determining what a given user has permission to do or see. 1. They can be requested with a GET request by client applications. Check out these additional journeys for more information on how AEM’s powerful features work together. The GraphiQL Explorer tool enables developers to create, and test queries against content on the current AEM environment. AEM Headless GraphQL Video Series; AEM Headless GraphQL Hands-on Tutorial. The following tools should be installed locally: JDK 11; Node. The multi-line text field is a data type of Content Fragments that enables authors to create rich text content. The endpoint is the path used to access GraphQL for AEM. src/api/aemHeadlessClient. This is because they must be hosted in pages that are based on dedicated AEM templates. Understand the benefits of persisted queries over client-side queries. Using this path you (or your app) can: receive the responses (to your GraphQL queries). This is used by the CIF authoring tools (product console and pickers) and for the CIF client-side components doing direct GraphQL calls. 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. GraphQL API. For example: AEM is accessed via: SPA is accessed via Since AEM and the SPA are accessed from different domains, web browsers enforce security policies such as cross-origin resource sharing. Build a React JS app using GraphQL in a pure headless scenario. I'm receiving this error when trying to query my graphQL API that uses Basic authentication: Response to preflight request doesn't pass access control check: No. Prerequisites. The following tools should be installed locally: JDK 11;. The sample React app has three main parts: The src/api folder contains files used to make GraphQL queries to AEM. Ensure you adjust them to align to the requirements of your project. 5 Using basic authentication and postman I am able to run all the requests GET,POST,PUT,DELETE on AEM. The key configuration properties are: alloworigin and/or alloworiginregexp specifies the origins the client connecting to AEM web runs on. In this example, we’re restricting the content type to only images. Adobe Experience Manager as a Cloud Service’s Cross-Origin Resource Sharing (CORS) facilitates non-AEM web properties to make browser-based client-side calls to AEM’s GraphQL APIs, and other AEM Headless resources. AEM’s GraphQL APIs for Content Fragments. Learn how to query a list of. Anatomy of the React app. Prerequisites. Learn how to enable, create, update, and execute Persisted Queries in AEM. This document is part of a multi-part tutorial. Previous page. In the basic tutorial multi-step GraphQL tutorial, you used the GraphiQL Explorer to test and refine the GraphQL queries. The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. In the basic tutorial multi-step GraphQL tutorial, you used the GraphiQL Explorer to test and refine the GraphQL queries. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. js v18; Git; 1. Click into the corresponding link below to for details on how to set up and use the authentication approach. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. To allow the client to access the GraphQL API, you need to also add Okta authentication to the Angular application. GraphQL endpoint creation (including security) The endpoint is the path used to access GraphQL for AEM. GraphQL Authentication with React and Apollo. Can't set Authentication header for Apollo client. This will configure GraphQL server to be available at the /api endpoint and, when running in development mode, we will have a nice simple GraphQL ide available at /playground which we will see in action in a minute. In the Basic Tutorial - Build a React app that uses AEM’s GraphQL APIs step we had reviewed and enhanced few key files to get hands-on expertise. The GraphQL API in AEM allows you to expose Content Fragment data to downstream applications. One simple way to add authentication to your project is with Okta. Send GraphQL queries using the GraphiQL IDE. Explore the AEM GraphQL API. Developer. If a JWT is present but validation of the JWT fails, the router rejects the request. Magento (or Adobe Commerce as of April 2021) is a powerful ecommerce platform with its own content management system (CMS). This guide uses the AEM as a Cloud Service SDK. js implements custom React hooks. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. #3 is what brand new apps might explore, to avoid accumulating non-GraphQL flows. When developing client applications, usually you need to filter Content Fragments based on dynamic arguments. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL Explorer. Manage GraphQL endpoints in AEM. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. The best way to get started with GraphQL and AEM is to start experiment with queries using our sample content fragment data. One such advantage is that it allows you to implement permissions and granular access control in the API. A GraphQL server is built on top of schema and resolvers. This document is part of a multi-part tutorial. In this video you will: Learn how to enable GraphQL Endpoints. “Hasura Cloud provided a faster and low-code way of accessing data, while adhering to security best practices. Authorization server: The authorization server is implemented in compliance with the OAuth 2. 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. A series of articles on building a fullstack app with TypeScript, Next. The GraphiQL tool also enables users to persist or save queries to be used by client applications in a production setting. Persisted queries are similar to the concept of stored procedures in SQL databases. js, Prisma & GraphQL The series covers the following: Data modeling using Prisma. The AEM GraphQL API allows you to update the default cache-control parameters to your queries in order to. js using Apollo Client. Created for: Beginner. Content can be viewed in-context within AEM. " Check your permissions. Authentication can provide context to a session and personalize the type of data that a user sees. In the basic tutorial multi-step GraphQL tutorial, you used the GraphiQL Explorer to test and refine the GraphQL queries. Create Content Fragments based on the. To securely setup AEM GraphQL for use with Content Fragments and your apps you need to configure various components. This tutorial explores how AEM’s GraphQL APIs and headless capabilities can be used to power the experiences surfaced in an external app. This tutorial explores how AEM’s GraphQL APIs and headless capabilities can be used to power the experiences surfaced in an external app. This variable is used by AEM to connect to your commerce system. GraphQL API. The GraphQL endpoints are publicly accessible, but the content that they return depends on user's access. In this chapter, you use the GraphiQL Explorer to define more advanced queries to gather data of the. This integration is based on the Magento GraphQL API which offers a very flexible and efficient integration point between AEM and Adobe Commerce. AEM GraphQL API requests. AEM Local Development Access Tokens are used to accelerate the development of integrations with AEM as a Cloud Service that programmatically interacts with AEM Author or Publish services over HTTP. We're going to create a GraphQL schema – a type system that describes your universe of data – that wraps calls to your existing REST API. Step 3: Fetch data with a GraphQL query in Next. Courses Recommended courses Tutorials Certification Events Instructor-led training Browse content library View all learning options. Build a React JS app using GraphQL in a pure headless scenario. I am using the basic authentication for the demo but the token-based authentication should be used for AEM as a Cloud Service. x. 4. Content Fragments GraphQL API; Managing GraphQL Endpoints; Using the GraphiQL IDE; Persisted Queries; Optimizing GraphQL Queries; Updating your Content Fragments for optimized GraphQL Filtering; Authentication for Remote AEM GraphQL Queries on Content Fragments; AEM GraphQL API with Content Fragments - Sample. Start your GraphQL API in your local machine. Cash will no longer be. Building a GraphQL API layer inside Next. npm install graphiql react react-dom graphql. This endpoint can use all Content Fragment Models from all Sites configurations (defined in the Configuration Browser ). Schema Schema // A GraphQL language formatted string representing the requested operation. AEM provides a Translation Integration Framework for headless content, allowing Content Fragments and supporting assets to be easily translated for use across locales. Author in-context a portion of a remotely hosted React. json file. Manage AEM Author access using Adobe IMS via the Adobe Admin Console. AEM GraphQL API requests. Learn. The GraphQL endpoints are publicly accessible, but the content that they return depends on user's access. js file. AEM GraphQL API. AEM can be connected to any commerce system that has an accessible GraphQL endpoint for AEM. The GraphQL API in AEM allows you to expose Content Fragment data to downstream applications. React App. Next, I will expose our types to GraphQL for querying. The HTTP GET requests from the headless app to AEM’s GraphQL APIs must be configured to interact with the correct AEM service, as. The following are examples of possible approaches for constructing URLs for AEM GraphQL API and image requests, for several popular headless frameworks and platforms. An end-to-end tutorial illustrating how to build-out and expose content using AEM Headless. The best way to get started with GraphQL and AEM is to start experiment with queries using our sample content fragment data. Next, explore the power of AEM’s GraphQL API using the built-in GraphiQL IDE. This document is part of a multi-part tutorial. This server-to-server application demonstrates how to query content using AEM’s GraphQL APIs using persisted queries and print it on terminal. The SPA retrieves this content via AEM’s GraphQL API. Authorization refers to the set of rules that is applied to determine what a user is allowed. So if no CUG is applied for the content which the graphQL query accesses in query, no need of authentication for the API even in prod? The publishUrl of assets returned in the query result in prod would be accessible without any authentication?Eventually your front-end code will want to use only GraphQL, except the legacy-but-stable authentication endpoints. The SPA retrieves this content via AEM’s GraphQL API. The following tools should be installed locally: JDK 11; Node. The WKND client application connects to AEM publish service, so it is important that you published the following to the AEM publish service. References to other content, such as images or other Content Fragments can be dynamically inserted in-line within the flow of the text. 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. 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. Open the Program containing the AEM as a Cloud Service environment to integrate set up the Service Credentials for. Upload and install the package (zip file) downloaded in the previous step. 7 - GraphQL Persisted Queries; Basic Tutorial. Authentication. RequestString string // The value provided as the first argument to resolver functions on the top // level type (e. Understand the authentication required for Remote AEM GraphQL queries in order to secure your headless content delivery. Tutorials by framework. Headless implementations enable delivery of experiences across platforms and channels at scale. 5 . The response of a GET request can be cached at the dispatcher and CDN layers, ultimately improving the performance of the requesting client. In previous releases, a package was needed to install the. To get started with GraphQL queries and how they work with AEM Content Fragments, it helps to see some practical examples. The AEM GraphQL API allows you to update the default cache-control parameters to your queries in order to. Subsequently, our custom authenticator will then sign the user if it has already been created in AEM. Content Fragments are used, as the content is structured according to Content Fragment Models. Create a user model class named User to store the login credentials of the user. Step 1. GraphQL is one of the most flexible and amazing tools we can learn to implement, however the amount of configuration we have to do or the number of tools we have to use to create an API far exceeds the creation of a REST API (this is just. Another issue that was fixed in 2023. Further Reference. Get{} functions are used to easily retrieve data from your Weaviate instance, while Aggregate{} is used to obtain meta information about data objects and its properties. If your modeling requirements require further restriction, there are some other options available. Specify a secret key in the appsettings. Please ensure that the previous chapters have been completed before proceeding with this chapter. Unless your GraphQL API is completely public, your server will need to authenticate its users. 6. An implementation of the standard GraphiQL IDE is available for use with the GraphQL API of Adobe Experience Manager (AEM). Authorization. The following are examples of possible approaches for constructing URLs for AEM GraphQL API and image requests, for several popular headless frameworks and platforms. GraphQL can be configured to handle authentication and. AEM has a large list of available content types and you’re able to select zero or more. View the source code on GitHub. Add Queries to GraphQL. Authentication can provide context to a session and personalize the type of data that a user sees. To help with this see: A sample Content Fragment structure. '. It becomes more difficult to store your assets,. It has its own advantages and flexibility. Click on top of the request's editor panel. NOTE. Client type. Authentication is the process of determining a user's identity. In this example, we’re restricting the content type to only images. If a request file is opened in the editor, this will add a request template to the opened file. Tap the Technical Accounts tab. Learn how to use Content Fragments in Adobe Experience Manager (AEM) with the AEM GraphQL API for headless content delivery. Please ensure that the previous chapters have been completed before proceeding with this chapter. Please ensure that the previous chapters have been completed before proceeding with this chapter. In AEM 6. Tutorials by framework. The sample React app has three main parts: The src/api folder contains files used to make GraphQL queries to AEM.