Saturday 10 December 2022

 Working with GraphQL in AEM

GraphQL is a query language for APIs that was developed by Facebook. It provides a flexible and powerful way to fetch and manipulate data from AEM, making it easier for developers to build applications on top of the AEM platform. In this blog post, we will explore the basics of working with GraphQL in AEM.

What is GraphQL?

First, let's look at what GraphQL is and how it differs from other API technologies. Unlike REST, which uses a fixed structure for requesting and returning data, GraphQL allows developers to specify exactly what data they want to fetch or manipulate in a single query. This means that developers can fetch only the data that they need, reducing the amount of data that needs to be transferred over the network and improving the performance of their applications.

Major advantages of using GraphQL in AEM

  • Improved flexibility and control over data fetching and manipulation. Because developers can specify exactly what data they want to fetch, they can optimize their queries for performance and avoid fetching unnecessary data.
  • Improved performance of AEM-based applications. By reducing the amount of data transferred over the network and allowing developers to optimize their queries, GraphQL can help to make AEM-based applications faster and more efficient.
  • Strongly-typed language for improved reliability. By defining the types of data that can be queried and manipulated using GraphQL, developers can catch errors at compile time rather than runtime, making it easier to debug and troubleshoot their applications.
  • Easier integration with other technologies and platforms. Because GraphQL returns data in a JSON format, it is easy for developers to integrate AEM with other technologies and platforms, making it a powerful tool for building complex, integrated applications.

Enabling GraphQL in AEM
To use GraphQL in AEM, you will need to create a GraphQL endpoint in AEM. This can be done by creating a new GraphQL servlet in the AEM configuration manager, and then adding the required GraphQL schema and queries to the servlet. The schema defines the types of data that can be queried and manipulated using GraphQL, while the queries specify the actual data that should be fetched or manipulated.

Once the GraphQL endpoint has been set up, developers can use it to fetch and manipulate data from AEM. This is done by sending a GraphQL query to the endpoint, which will then return the requested data in a JSON format. Developers can then use this data in their applications, making it easy to integrate AEM with other technologies and platforms.

One of the key advantages of using GraphQL in AEM is that it allows for greater flexibility and control over the data that is fetched and manipulated. Because developers can specify exactly what data they want to fetch, they can optimize their queries for performance and avoid fetching unnecessary data. This can help to improve the overall performance of AEM-based applications, making them faster and more efficient.

In addition, because GraphQL is a strongly-typed language, it can help to prevent errors and improve the overall reliability of AEM-based applications. By defining the types of data that can be queried and manipulated using GraphQL, developers can catch errors at compile time rather than runtime, making it easier to debug and troubleshoot their applications.

How to Test GrahQL integrated in AEM

To test GraphQL in AEM, you can use the GraphiQL tool, which is a browser-based IDE for testing GraphQL queries and mutations. To use it, you will need to enable the GraphiQL servlet in AEM and access it from the AEM Tools console.

Once you have access to GraphiQL, you can start testing your GraphQL queries and mutations. To do this, you can use the built-in editor to write and execute your queries and mutations, and then view the results in the right-hand panel. You can also use the built-in documentation explorer to view the available schema and queries, which can be helpful when writing your own queries.

In addition to using GraphiQL, you can also test GraphQL in AEM using other tools and frameworks, such as Postman or Apollo Client. These tools can be used to test and debug your GraphQL queries and mutations, and can help to ensure that they are working correctly before deploying them in your AEM-based application.

Overall, working with GraphQL in AEM can provide many benefits for developers. It allows for more flexible and efficient data fetching and manipulation, and can help to improve the performance and reliability of AEM-based applications. Whether you are building a new application on top of AEM or looking to improve an existing one, incorporating GraphQL into your development process is well worth considering.    

Friday 21 October 2022

Difference between Adobe Indesign , Adobe Framemaker & Adobe AEM Guides(XML Documentation)


In this blog, we will see the major difference between InDesign, Framemaker and AEM Guides 


InDesign FrameMaker AEM Guides/XML Doc
Adobe InDesign is an industry-leading layout and page design software for print and digital media. Adobe FrameMaker is a document processor designed for writing and editing large or complex documents, including structured documents AEM Guides is a best-in-class multichannel publishing of DITA content used for product documentation, policies and procedures, long-form marketing content managed through a component content management system. Adobe Experience Manager Guides (AEM Guides) was formerly named XML Documentation for Adobe Experience Manager or simply XML Documentation for AEM.
InDesign is more or less a desktop publishing and layout tool. FrameMaker is better for Structured & Unstructured documentation with various outputs. Structured FrameMaker documents are used to create consistency in documentation. Unstructured FrameMaker documents use tagged paragraphs and does not impose logical structure. AEM Guides is mainly for structured content management with in Component Content Management system.
InDesign is all about fine-tuning the output. Content takes a backseat here.  focuses on page layout. It is not designed for authoring. FrameMaker is a word processor that focuses on the authoring part. Mainly used for technical writing. It is mainly designed for the writing part for formatted documents. Easy-to-use WYSIWYG web editor to create granular, presentation-agnostic, variant-free content.
InDesign supports XML, style sheets, and other coding markup DITA and XML based publishing Powerful DITA authoring and content management support. Migrate content from Word, XHTML, IDML, and more, to DITA with the out-of-the-box ingestion framework.
Limited features like content creation and design. Moderate features like content creation with less design capability and advanced publishing. Features include content reuse, version management, reference management, search and metadata tags management, translation workflows and content health reports to assume complete control of your content
Best for small number of pages. It is complex to maintain a lot of content in InDesign.  Supports larger number of pages. Supports larger number of pages.
We can create beautiful graphic designs with typography from the world’s top foundries and imagery from Adobe Stock. Great for making brochures or magazines,  stationery, flyers and posters to brochures, annual reports, magazines and books For technical documentation with headings, chapters, and sections, like user manuals, you definitely want to be using a topic-based tool with structured authoring, like FrameMaker. Delivering content to Adobe Experience Manager Sites, mobile apps, knowledge bases, CRM platforms, IoT Apps, chatbots, PDF, HTML5, EPUB, KINDLE, and more.
Review options: "Share for Review" option within InDesign to initiate collaborative reviews with stakeholders and receive feedback without having to navigate to a different app FrameMaker supports many ways of setting up review and collaboration which includes multi level reviewers. Web-based review and collaboration: Allow multiple authors and reviewers to collaborate simultaneously in real time even when operating remotely.
Integrate with Adobe Experience Manager Integrate with Adobe Experience Manager (through connector) AEM Guides is installed directly in AEM. Native integration with Adobe FrameMaker, Oxygen & other desktop tools for import and export of DITA (for e.g. AEM Desktop app, WINSCP)
Static metadata information is stored using the Extensible Metadata Platform (XMP) standard for images and files and can be imported and exported. Static metadata information is stored using the Extensible Metadata Platform (XMP) standard for images and files and can be imported and exported. Dynamic Metadata support available. The metadata can be imported exported, used for tagging and many other use cases.
No reporting for the content No reporting for the content Reporting options Available to get an idea on content reuse, version history, DITA map & Link references.
No OOTB Translation available. The inDesign document should be exported to InDesign Markup​ (IDML) format and has to be translated with the help of external tralstaors. Out of the box translation support with XLIFF available in Framemaker. We can also use third party translator by exporting the content. Industry-leading translation management and localization support by utilizing the AEMs built in translator (both DITA + content) & Third party translator support.
Simple find and search support available. Flexible search includes searching through a book, bookmap, or DITA map Comprehensive search and content usage data option available.


In upcoming blog, we will see more details about Adobe RoboHelp


Friday 10 June 2022

A pointer to successively passing AD5-E113 AEM as a Cloud Service Architect Recertification Exam

Recently I have successfully completed the recertification of AD5-E113 (AEM as a Cloud Service Architect Recertification Exam) which is basically an extension of 'AD0-E117 - Adobe Certified Master - Adobe Experience Manager Sites Architect (Adobe Experience Manager)'.

My first thoughts
We assume re-certifications are easy to deal with. But it is not always the case. 

To clear the 'AD0-E117' we will have to be thorough with AEM basics and advanced concepts, but AD5-E113 AEM as a Cloud Service Architect Recertification Exam, we need to be double strong with (AEMaaCS)'AEM As a cloud service concepts'. Let us analyze the certification details further.

The certification duration is 1.5 Hrs and recertification can be taken through 'examity' certification portal.

The certification areas and credits are broken down as below.

  • Architecture and design - 9 questions
  • System maintenance - 2 questions
  • Discovery - 3 questions
  • Solution Design - 9 questions
  • Implementation - 4 questions
  • Configuration and deployment - 8 questions
  • Maintenance - 4 questions

When I took the certification in the month of June 2022, it had 39 questions overall.

Below given pointers will definitely help you while preparing for the re-certification.

AEM as a cloud service specific questions were around below topics

  • Licensing and credits of AEMaaCS, Various environment concepts
  • AEMaaCS - IMS configurations
  • AEMaaCS Indexing concepts
  • AEMaaCS Code quality concepts
  • AEM as a cloud service(AEMaaCS) pipeline concepts like various gates and thresholds
  • AEMaaCS Git, branching and merging concepts when we have multiple repositories
  • AEMaaCS deployment error analysis
  • AEM Dispatcher configurations in generic and AEMaaCS changes like filters etc.
  • AEMaaCS Access levels and various permissions w.r.t developer, admin, business owner
  • AEMaaCS dispatcher changes while moving to AEM as a cloud
  • AEMaaCS asset concepts, architectural decisions
  • AEMaaCS replication(reverse) concepts and how to deal with it
  • AEMaaCS maintenance activities - who owns what
  • AEMaaCS DAM update asset workflow and related changes
  • AEMaaCS Logs and analysis options
  • Site performance w.r.t. AEMaaCS

Generic questions were from below topics

  • AEM Sling jobs
  • Sling Content Distribution
  • Dynamic media concepts around smartcroping, smart imaging
  • Valid template counts for specific types of AEM pages.
  • Site performance analysis and decissions to be made as an architect w.r.t dispatcher configurations or in generic

Final Note:
My recommendation is, even though you are working as an AEM architect, you must go through the documentation of AEMaaCS(Preferrably the conceptual articles rather than the videos) multiple times before attempting the certification exam.

Watch Below Youtube Shorst, this will definitely help you !

Thursday 26 May 2022

Understanding the basics of CCMS and Adobe Experience Manager Guides

 There are cases where we might need to manage content beyond the capability of a CMS Solution. Component Content Management System (CCMS) lets you manage content at a component level by providing capability of managing content at granular levels. Here content is created in the form of components.

What is a component in CCMS?
A component is a piece of structured & self-contained content. It can contain a single word, a series of paragraphs, an image, table, or a video. The components are written in a modular manner without any style dependency. Component manages the relationships and associations and tracks all its usage and status.

Metadata is the one piece which makes a component more efficient. Components also enhances the way of content publishing to multi channels effortlessly.

What are some of the common use cases of a CCMS?

Some of the major usecases of a CCMS are given below,

  • Product/Technical documentation
  • Help & Support Content
  • Datasheets/Data booklet
  • Policies and procedures
  • Long-form marketing content

CMS usually store content as pages or documents. But CCMS manage content as individual paragraphs and words.
CCMS helps distribution of granular content by enabling re-use of the content instead of re-writing or copy/paste.
It helps multi-channel publish to any output or system while providing content analytics with a built in security.
Translation capabilities are one of the major feature in any CCMS.

An example implementation could be a chatbot picking up exact content from a CCMS and providing relevant information to user based on his query.

What is DITA w.r.t CCMS?
Majority of the CCMS uses a structured open standard known as DITA (Darwin Information Typing Architecture ). DITA is a set of specification about document types for authoring and organizing topic-oriented information, as well as a set of mechanisms for combining, extending, and constraining document types.

 Other platforms and programs can be easily integrated with a DITA Component Content Management System via REST/API calls.

Adobe's role in CCMS world.

'Adobe Experience Manager Guides'  A CCMS from Adobe, provides a structured content management for experience-driven documentation. Adobe Experience Manager Guides is an end-to-end solution which is scalable, agile and cloud-native with below capabilities.

  • Structured content management - Enables content creation, versioning, translation & reuse, reference management, search and metadata management, Workflow enabled process.
  • Web-based content creation, review and collaboration - Creation & migration of any content to DITA with the out-of-the-box ingestion framework via seamless workflow process
  • Omnichannel content experiences - Seamlessly delivers content to AEM sites, Mobile Apps, CRM, IoT,Chatbots and other forms
  • AI-powered documentation - Smart tagging & smart cropping based on Adobe Sensei for faster content discovery and delivery
  • Native integration with Adobe products - Built in integration with Adobe Creative Cloud and Adobe Experience Cloud
  • Cloud Enabled - Leveraging the Adobe Experience Manager cloud native capability of always current, scalable, secure & global.

Read more here:

Saturday 7 May 2022

Application security testing within AEM Boundary and Tools

Evolution of AEM from on-prem/AMS to AEM As Cloud service has reduced the security concerns to a certain limit. But there are areas an AEM architect should be concerned about, when the code moves to production.

Role of Application Security Testing (AST)
The application security is a major consideration when new design techniques are adopted and DevSecOps are in demand. Application Security Testing (AST) tools available as On-Premise,Cloud or as a SaaS offering. The current tech-market comprises of Application Security Testing (AST) tools offering core testing capabilities — which can be of type static, dynamic, interactive and various optional, specialized capabilities testing;

Below given a set of the AST techniques in brief
Static AST (SAST): SAST analyzes an application’s source, bytecode or binary code for security vulnerabilities - Mainly during development & testing phases.
Dynamic AST (DAST): DAST analyzes applications in their running/dynamic state during testing mainly during operational phases.
DAST Simulates the attack on web-application(AEM) and APIs(within the boundary of AEM application)
Software composition analysis (SCA):    SCA is used to identify other open-source and, less frequently, commercial components in use within an AEM application. From this, known security vulnerabilities, potential licensing concerns and operational risks can be identified.

Interactive AST (IAST): IAST checks a running application, For e.g In case of AEM via the Java Virtual Machine [JVM] and examines its operation to identify vulnerabilities.

Fuzzing: Fuzz testing relies on providing random, malformed or unexpected input to a program to identify potential security vulnerabilities — For e.g., a memory leaks or buffer overflows or application crashes.

Mobile AST (MAST): MAST generally use traditional testing approaches (e.g., SAST and DAST) that have been optimized to support languages and frameworks commonly used to develop mobile and/or Internet of things (IoT) applications. Since mobile & IoT is a related technology with AEM, we must consider such techniques.

Some of the market leaders in AST

There are many AST tools available in market, but below given a set of tools which we came across during our evaluation.
Synopsis, Checkmarx, Veracode, Contrast security, Invicti, Data Theorem are some of the options which can be considered for Application security testing.

Please comment if you have come across any other tools suitable for AEM projetcs.

An architectural thought should be around the selection of tools available in market, the time frame for testing, frequency and penetration level etc. 

The consideration for tool selection must factor pricing vs a freemium model, low-code applications, notification/ alert strategies, language options, IDE & Dashboard supports, customer experience etc.

Monday 7 February 2022

Understanding Adobe WorkFront & Its use with AEM

What is Adobe WorkFront?
Workfront is a Work management application, which helps organizations to organize entire work in
single location.

Workfront helps manage projects, assign tasks, manage resources, documents, allocate finance, generate various reports, analytics reports etc. The tool basically helps standardize process and establish governance within any organization.

Using this tool, a Project Manager can create projects and related tasks, assign tasks to team, set end dates etc. Project status section captures all status of a project (based on details which are manually updated within system by end users).

Read More About Workfront here:

What are all the default capabilities of WorkFront?
Workfront by default provides project templates, custom forms, approval workflows which are highly customizable. 

Below given a list of all capabilities of Workfront,

  • Agile Storyboard Management,
  • Resource Management,
  • Project Management and Tasks Management,
  • Project planning and scheduling,
  • Time tracking,
  • Manage Budgeting, Projections and Spendings,
  • Status tracking,
  • Task management and progress tracking,
  • Milestone, Time and Expense tracking,
  • Alerts and notifications,
  • Custom Dashboards

Workfront integration with AEM

Workfront can be easily integrated with Adobe Experience Manager. Using WorkFront, we can create projects, tasks (For e.g. marketing promotion project and its subtasks like asset design) and once assets are ready it can be pushed to AEM. We can also enrich asset metadata between systems once connected while syncing (push & pull) AEM assets to WorkFront.

AEM specific Features within Workfront
We can have project link folders - which help to organize folders and taxonomy between AEM and WorkFront. We can also create folder and subfolders, metadata and link or sync between AEM & Workfront.

Metadata sync capability

The feature helps sync metadata between AEM & Workfront.
We can create AEM metadata schema(Workfront Asset details) and send them to Workfront. Once linked, on AEM Assets metadata tab we will have Workfront Asset details tab where all metadata gets synced.

Version controlled between AEM & Workfront
We can have versions of assets and manages them well between AEM & Workfront.

Content Creation and Sync
We can create a task for content creation and this content can be made available in AEM as Content fragment modal.
Once done, using the same project id, (content fragment modal + same project id) specific assets can be authored on a page.

We can have actions, trigger activity on both AEM & Workfront.

AEM Workflow engine can be used to update Workfront tasks, attach custom forms to any of the work types, automate publishing events based on predefined conditions etc. once connector is configured AEM Workflow can have steps to do specific actions on Workfront.

Which version of AEM supported with Workfront?
Workfront works on AEM 6.4 to AEM as Cloud Service

Workfront License
We will see how Workfront licenses and access levels are tied together here.
There are 4 types of paid Workfront licenses which allow different levels of access to Workfront. Each access level is attached to one of these below licenses.

As a Workfront administrator, instead of assigning a license to a user, we can assign them the access level attached to that license.

License     - Associated access level
------------       ------------------------
Plan          - System Administrator
                 - Planner
Work        - Worker
Review     - Reviewer
External   - External User [Note: Not a paid license. Designed mainly for sharing documents with collaborators who don't use Workfront.]

How to add users to Workfront

If the organization has been onboarded to the Adobe Business Platform, we can perform this action through the Adobe Admin Console. There are various operatios allowed within Workfront[ For e.g. Grant a user admin access, Add a user, deactivate, delete, edit bulk edit, import users]

What are all the access types available in Workfront?
There are 6 built-in access levels are designed for a particular type of user:

  1. System Administrator (attached to the Plan license)
  2. Planner (attached to the Plan license) - users who create and manage work (plan and manage project, build & share reports, add users, edit project templates, create portfolios)
  3. Worker (attached to the Work license) - a normal employee who work on task based on project task assigned by a manager
  4. Reviewer (attached to the Review license)
  5. Requestor (attached to the Request license)
  6. External User (attached to the External Email license)

Various permission w.r.t users
Edit             - Users can create, edit, delete, and share the Workfront object
View           - Users can review and share the Workfront object
No Access  -    Users cannot access the Workfront object

Custom Permissions
In case if we need a custom Planner, Worker, Requester, or Reviewer access level, we can copy the built-in access level and determine the amount of access we want it to allow for the various Workfront object types.

For the users who are assigned to it, an access level defines what they can see and do with the following object types and areas in Workfront:

  • Projects
  • Tasks
  • Issues
  • Portfolios
  • Reports, Dashboards, and Calendars
  • Filters, Views, and Groupings
  • Documents
  • Other users
  • Templates
  • Financial Data
  • Resource Management
  • Scenario Planner
  • Workfront Goals

Read more here

SSO and Active Directory integration with Workfront?

Active Directory & LDAP Support 

We can configure Adobe Workfront with SAML 2.0, SAML 1.1 using ADFS, We can also configure Adobe Workfront with Azure Active Directory. Adobe recommend SAML 2 Always.

Workfront provides a centrally managed single sign-on (SSO) configuration that easily integrates Workfront with existing corporate SSO solution. This configuration is easy to set up and manage, and is available for both OnDemand and OnPremise Enterprise customers.

In order to use the SSO functionality in Workfront, organization needs to setup an SSO application, such as LDAP or Active Directory. We can then configure Workfront so that it can communicate with organizations SSO solution.

If the organization has been onboarded to the Adobe Business Platform, the users use the Adobe Business Platform to access Adobe Workfront. User management is mainly done through the Adobe Admin Console. i.e. Single Sign-On (SSO) is handled through the Adobe Business Platform rather than through Workfront

If organization has been onboarded to the Adobe Business Platform, Single Sign-On (SSO) is automatically enabled as part of that integration. There is no separate configuration required for same.

User Onboarding by import
If there is an existing system that is already populated with users associated with SSO credentials, we can import the users' IDs into Workfront by importing a comma-separated values (CSV) file into Workfront.

Third Party Integrations
We can integrate Adobe Workfront with third-party applications. These integrations can extend the utility of Workfront. 

Built-in integrations

We can configure integrations directly from Workfront, or from another application by installing the Workfront add-in for that application.

Built-in integrations cover many of the most common apps used by businesses, such as Dropbox, Slack, Google Drive, or Adobe products such as the Adobe Creative Cloud or Adobe Experience Manager Assets.

Custom OAuth2 applications
Workfront administrators can create OAuth2 applications for their instance of Workfront, which allow other applications to access Workfront. Admin users can then give permission to those other applications to access their Workfront data. In this way, we can integrate Workfront with applications of our choice, including own in-house applications.

Workfront API
Workfront offers a public API that enables to extend and enhance the Workfront experience. The goal for the Workfront API is to simplify building own integrations with Workfront by introducing a REST-ful architecture that operates over HTTP.

Adobe Workfront Document Webhooks defines a set of API endpoints through which Workfront makes authorized API calls to an External Document Provider. This allows anyone to create a connector plugin for any document storage provider.

What is Workfront Fusion?

Workfront Fusion helps to connect with other platform applications by allowing you to automate workflows across multiple apps and web services(scenarios where the apps work together to execute a task). It provides a visual user interface to configure workflows. Development knowledge is not mandatory to work with Workfront Fusion.

Workfront improves operational efficiency & accuracy while reducing need for more resource by enabling more automation.

The integration between AEM and Workfront is mainly around the AEM assets capability at present.

Good read on WorkFront
How To Master Your Marketing Workflow

Create roles & permission in Workfront