{"id":97155,"date":"2025-04-24T09:55:19","date_gmt":"2025-04-24T04:25:19","guid":{"rendered":"https:\/\/cloudfoundation.com\/blog\/?p=97155"},"modified":"2025-05-03T13:50:16","modified_gmt":"2025-05-03T08:20:16","slug":"aem-client-libraries-aem-configurations-logs","status":"publish","type":"post","link":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/","title":{"rendered":"AEM Client Libraries | AEM Configurations &#038; Logs"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_and_Client_Libraries\" >Understanding AEM and Client Libraries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#AEMs_Apps_Hierarchy_and_User_Permissions\" >AEM\u2019s Apps Hierarchy and User Permissions<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#AEMs_Proxy_Mechanism_for_Client_Libraries\" >AEM\u2019s Proxy Mechanism for Client Libraries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Anonymous_Users_in_AEM\" >Anonymous Users in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Embedding_Client_Libraries_in_AEM\" >Embedding Client Libraries in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_Client_Libraries\" >Understanding AEM Client Libraries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#The_Role_of_Categories_in_AEM\" >The Role of Categories in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Embed_vs_Dependencies_in_AEM\" >Embed vs. Dependencies in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Modularising_Your_Client_Libraries_in_AEM\" >Modularising Your Client Libraries in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#The_Importance_of_Proper_Configuration_in_AEM\" >The Importance of Proper Configuration in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_Backend_Configurations\" >Understanding AEM Backend Configurations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Why_Choose_WCA_Configuration_in_AEM\" >Why Choose WCA Configuration in AEM?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Creating_WCA_Configuration_in_AEM\" >Creating WCA Configuration in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Integration_of_WCA_Configuration_in_AEM_Services\" >Integration of WCA Configuration in AEM Services<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Accessing_Configurations_in_AEM_Console\" >Accessing Configurations in AEM Console<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_Resource_Hierarchy\" >Understanding AEM Resource Hierarchy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Simplifying_Configurations_in_AEM\" >Simplifying Configurations in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Making_AEM_Configurations_Future-Ready\" >Making AEM Configurations Future-Ready<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#AEM_Run_Modes_and_Configurations\" >AEM Run Modes and Configurations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Overcoming_Challenges_in_AEM_Configuration_Management\" >Overcoming Challenges in AEM Configuration Management<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Effortless_Updates_with_AEM_Configurations\" >Effortless Updates with AEM Configurations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_Configuration\" >Understanding AEM Configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Creating_a_Configuration_in_AEM\" >Creating a Configuration in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#How_AEM_Chooses_the_Best_Configuration\" >How AEM Chooses the Best Configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Deploying_Configurations_in_AEM\" >Deploying Configurations in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Making_Configurations_Run-Mode_Specific_in_AEM\" >Making Configurations Run-Mode Specific in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Avoiding_Common_Mistakes_in_AEM_Configuration\" >Avoiding Common Mistakes in AEM Configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Understanding_AEM_Log_Files\" >Understanding AEM Log Files<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Navigating_the_AEM_Log_Folder\" >Navigating the AEM Log Folder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#The_Importance_of_Errorlog_in_AEM\" >The Importance of Error.log in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#How_Errorlog_Supports_Debugging_in_AEM\" >How Error.log Supports Debugging in AEM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#Exploring_Other_Log_Files_in_AEM\" >Exploring Other Log Files in AEM<\/a><\/li><\/ul><\/nav><\/div>\n\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_and_Client_Libraries\"><\/span><strong>Understanding AEM and Client Libraries<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/cloudfoundation.com\/blog\/aem-training-digital-management-platform\" target=\"_blank\" rel=\"noopener\"><strong>\u00a0Adobe Experience Manager (AEM)<\/strong><\/a> is an efficient way for developers to manage digital assets. One key part of its operation involves client libraries.<\/p>\n<p>They store customised code like JS or CSS, which ensures content delivery without interruptions or glitches.<\/p>\n<p>As you work within AEM, it may become apparent that specific files, such as CSS and JS, are loading from unexpected paths.<\/p>\n<p>A result of AEM internally selecting their loading paths and not from you, as intended. Here lies an intriguing mystery: why has AEM chosen such specific paths from which to load them?<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEMs_Apps_Hierarchy_and_User_Permissions\"><\/span><strong>AEM\u2019s Apps Hierarchy and User Permissions<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides an application hierarchy as a repository for custom code; however, users accessing published instances do not have permission to read from it, which is part of an effective <a href=\"https:\/\/cloudfoundation.com\/blog\/sap-security-tutorials\" target=\"_blank\" rel=\"noopener\">security<\/a> mechanism to prevent unapproved code modifications.<\/p>\n<p>End users have limited access to content folders, which ensures they can view content without interfering with core functionalities.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Client-Libraries.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEMs_Proxy_Mechanism_for_Client_Libraries\"><\/span><strong>AEM\u2019s Proxy Mechanism for Client Libraries<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM employs a proxy mechanism for loading client libraries. Since end users cannot directly access apps, AEM redirects these libraries through etc.clientlibs.<\/p>\n<p>Ensuring the timely and correct delivery of essential JS and CSS components.<\/p>\n<p>By setting the allow Proxy property, AEM will enable resources to load without jeopardising security.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Anonymous_Users_in_AEM\"><\/span><strong>Anonymous Users in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When visitors arrive on websites, Users in AEM will be created with an anonymous user role that has predetermined read permissions and is restricted from making modifications or making any unauthorised changes.<\/p>\n<p>Unauthorised users could pose security threats if granted full access in AEM; thus, limiting their rights is key to maintaining a safe environment.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Embedding_Client_Libraries_in_AEM\"><\/span><strong>Embedding Client Libraries in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM allows developers to embed client libraries to reduce redundancy in code. Instead of duplicating JS files, developers can utilize AEM&#8217;s embed property and reference existing client libraries instead.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-User-Roles.png\" alt=\"\" width=\"800\" height=\"1996\" \/><\/p>\n<p>For example, if a search component requires code from another library, rather than recreating the same JS by hand, embedding this library increases efficiency while keeping AEM projects tidy.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Client_Libraries\"><\/span><strong>Understanding AEM Client Libraries<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Are you ready for some Adobe Experience Manager\/AEM fun\u00a0and learning about client libraries? Client libraries are essential for managing and organising AEM&#8217;s CSS, \u00a0<a href=\"https:\/\/cloudfoundation.com\/blog\/what-is-javascript\" target=\"_blank\" rel=\"noopener\">JavaScript<\/a> and frontend assets.<\/p>\n<p>Are You Working in AEM? For anyone familiar with AEM, libraries are essential for keeping code efficient and modular.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_Role_of_Categories_in_AEM\"><\/span><strong>The Role of Categories in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A category is invaluable when working in AEM; it acts as an identifier of client libraries so your library doesn&#8217;t work without one!<\/p>\n<p>Think of naming your library like people addressing you by your name: whether that be family members, close acquaintances or simply oneself! In AEM these names help identify and load specific client libraries when required.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Embed_vs_Dependencies_in_AEM\"><\/span><strong>Embed vs. Dependencies in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let us now examine the difference between embedding code from another library as part of your main client library, including it directly as a dependency, and loading all that code through one network call. The latter provides more flexibility.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Library-Management.png\" alt=\"AEM Training\" width=\"800\" height=\"1070\" \/><\/p>\n<p>Dependencies enable client libraries to depend on another library while remaining standalone &#8211; this keeps things modular and \u00a0efficient while making network calls for both libraries at once.<\/p>\n<p>So this keeps AEM user libraries modularized efficiently. Incorporating Dependencies into Client Libraries<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Modularising_Your_Client_Libraries_in_AEM\"><\/span><strong>Modularising Your Client Libraries in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM allows you to organize files\u00a0 efficiently by creating folders within your client library for JavaScript, CSS and so forth.<\/p>\n<p>For instance, <a href=\"https:\/\/cloudfoundation.com\/blog\/next-js-interview-questions-and-answers\" target=\"_blank\" rel=\"noopener\">creating a &#8216;js&#8217;<\/a> folder would allow you to place all JavaScript files inside. When configuring the AEM Client Library Configuration, define its base path name.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_Importance_of_Proper_Configuration_in_AEM\"><\/span><strong>The Importance of Proper Configuration in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Make sure your client library in AEM is configured appropriately! Proper configuration ensures smooth code execution by specifying categories, dependencies, and embedding other libraries. Failing to do this correctly could create issues later. Don&#8217;t rush this task; take your time.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Backend_Configurations\"><\/span><strong>Understanding AEM Backend Configurations<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Today, I would like to provide some \u00a0insight into some AEM backend configurations that have helped us manage APIS and credentials more effectively.<\/p>\n<p>&#8221; This solution can be game-changing, and I can&#8217;t wait to explain it further.<\/p>\n<p>Imagine you need to connect to an API from a third-party vendor that comes equipped with different URL, user, and password configurations across development, staging, and production environments.<\/p>\n<p>This &#8220;connecting-by-url-name-password-switcher&#8221; allows for seamless transition.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Configuration-Guide.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>Where should login, username, and password credentials be stored securely? AEM offers an innovative alternative: WCA Configuration.<\/p>\n<p>With it you can safely store configurable values like URLS, usernames and passwords.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Why_Choose_WCA_Configuration_in_AEM\"><\/span><strong>Why Choose WCA Configuration in AEM?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WCA Configuration&#8217;s greatest strength lies in its flexibility\u2014even if your credentials are entered incorrectly, no server restart is required!<\/p>\n<p>Change the username or password in WCA Configuration and it will immediately take effect in your code. For instance, say your AEM application uses credentials from third-party APIs for connection; and its password has become incorrect.<\/p>\n<p>In such a situation, simply update its credentials in WCA Configuration to access them immediately from code.<\/p>\n<p>Simply access WCA Configuration, update password values, and the system dynamically picks them up without needing a reboot.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#0095f2&#8243; background_color_gradient_end=&#8221;#7dbed8&#8243; background_color_gradient_direction=&#8221;92deg&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;73%|62%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/SS_436-_Converted_-1.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;114%|112%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;25px|-4px&#8221; transform_translate_linked=&#8221;off&#8221; width=&#8221;98.1%&#8221; custom_margin=&#8221;|7px|||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;21px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\">AEM Training<\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Explore Course Content&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Creating_WCA_Configuration_in_AEM\"><\/span><strong>Creating WCA Configuration in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Constructing WCA configuration in AEM is straightforward. I began by creating an example configuration using @ObjectClassDefinition annotation which designates classes as WCA Configurationss.<\/p>\n<p>Named the Sample Configuration to easily distinguish it, I use @AttributeDefinition to define its attributes such as URL, username and password.<\/p>\n<p>These attributes become configurable values you can dynamically change during runtime! Isn&#8217;t that amazing?<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Integration_of_WCA_Configuration_in_AEM_Services\"><\/span><strong>Integration of WCA Configuration in AEM Services<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To fully leverage WCA configuration values within AEM Services, they should be referenced using @designate annotation to bind their configuration class with them and make use of configuration values in your code effortlessly.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/WCA-Configuration-AEM.png\" alt=\"AEM Training\" width=\"800\" height=\"2990\" \/><\/p>\n<p>My init method allowed me to quickly retrieve the configuration, while another built a string using values stored within.<\/p>\n<p>It was amazing seeing AEM seamlessly integrate dynamic configurations into its workflow!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Accessing_Configurations_in_AEM_Console\"><\/span><strong>Accessing Configurations in AEM Console<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>After you deploy the code, your configuration becomes available within Adobe&#8217;s AEM \u00a0Configuration Manager Console.<\/p>\n<p>From here you&#8217;ll see both your customized Sample Configuration as well as other out-of-the-box configurations provided by them.<\/p>\n<p>Adobe has stored their default API settings here as well, making this console an efficient way of managing and tweaking custom and built-in configurations alike.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Resource_Hierarchy\"><\/span><strong>Understanding AEM Resource Hierarchy<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM&#8217;s resource hierarchy was designed for efficiency and flexibility; when you move files between folders such as &#8220;libs&#8221; and &#8220;apps,&#8221; priority goes to the latter one.<\/p>\n<p>AEM provides a built-in configuration known as Resource Search Path that determines how paths should be searched sequentially.<\/p>\n<p>Consider it this way: the execution process checks &#8216;apps&#8217; before moving onto &#8216;libs.&#8217; By organizing resources this way, AEM ensures that customisations take priority over traditional code changes.<\/p>\n<p>With its clever system for resource organization and prioritizing customisations first and libs second, developers have access to an impressive way of expanding functionality without changing or altering core code directly.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Simplifying_Configurations_in_AEM\"><\/span><strong>Simplifying Configurations in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let&#8217;s review AEM&#8217;s out-of-the-box configurations; OSGi configurations offer revolutionary flexibility that enables you to make adjustments without making code modifications.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Resource-Management.png\" alt=\"AEM Training\" width=\"800\" height=\"1066\" \/><\/p>\n<p>Resource Search Path configurations allow for managing priority in resource paths, while you can manage them via OSGi Console. One advantage to this approach is its versatility.<\/p>\n<p>Once your changes are saved, AEM immediately recognizes them &#8211; be they URL, username or password values.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Making_AEM_Configurations_Future-Ready\"><\/span><strong>Making AEM Configurations Future-Ready<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Enhancing AEM Configurations Future-Ready Hard coding values such as API endpoints, usernames and passwords is no longer viable in AEM.<\/p>\n<p>OSGi configurations offer an elegant solution by making these items configurable so they can easily adapt to changes as they arise.<\/p>\n<p>As an example, when updating an API endpoint from Yahoo to Google, simply make the change within OSGi Console, and it will immediately reflect in AEM without the need for server restarts or deployment delays &#8211; seamless updates!<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"AEM_Run_Modes_and_Configurations\"><\/span><strong>AEM Run Modes and Configurations<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Run modes in AEM provide you with an outstanding way of configuring settings for different environments, whether that means an author\/publish configuration or something more unique like production\/dev. With AEM you can manage these settings efficiently!<\/p>\n<p>By organizing your configuration folders using names such as &#8216;config.author.prod,&#8217; AEM automatically applies relevant settings during runtime to ensure a uniform and manageable environment for you and your teams.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Overcoming_Challenges_in_AEM_Configuration_Management\"><\/span><strong>Overcoming Challenges in AEM Configuration Management<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>An essential challenge of AEM configuration management is ensuring that settings persist between <a href=\"https:\/\/cloudfoundation.com\/blog\/octopus-deploy-training\" target=\"_blank\" rel=\"noopener\">deployments<\/a>; manual changes made via OSGi Console may become obsolete during subsequent releases, rendering any previous settings obsolete and subject to overwriting by AEM during further deployments.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Configurations.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>To solve this, include configuration settings within your codebase. AEM provides the &#8216;ui.config&#8217; module as a solution that makes configurations deployable and maintainable across environments.<\/p>\n<p>By using it, your configurations become deployable and maintainable with each environment change.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Effortless_Updates_with_AEM_Configurations\"><\/span><strong>Effortless Updates with AEM Configurations<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM makes configuration changes effortless: you can update API credentials without restarting your server, and the changes take effect instantly!<\/p>\n<p>Agility in development and deployment cycles is invaluable, while AEM allows for seamless OSGi configuration management that makes\u00a0managing dynamic values like URLs, usernames and passwords simple and manageable without hindering workflows.<\/p>\n<p>By effectively using OSGi configurations, facilitate its management system robust yet adapts easily to suit varying workflow needs without disrupting workflow.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Configuration\"><\/span><strong>Understanding AEM Configuration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Let&#8217;s dive deeper into AEM and its configuration. Successful AEM work relies heavily on proper configuration management.<\/p>\n<p>I have encountered instances in which different folders contain many configurations, making it hard to know which should take priority.<\/p>\n<p>AEM uses run modes to determine which configuration should be applied. For instance, you might have two folders named &#8216;config.author.prod&#8217; and another with just &#8220;config.&#8221;<\/p>\n<p>Both folders may match specific run mode conditions more effectively; AEM will always prioritize one over the other.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/Optimizing-AEM-Configurations.png\" alt=\"AEM Training\" width=\"800\" height=\"2425\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Creating_a_Configuration_in_AEM\"><\/span><strong>Creating a Configuration in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>An XML file is needed as the foundation for setting up configurations in AEM. I always ensure the name matches what service relates to each configuration file instead of giving them random titles.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_AEM_Chooses_the_Best_Configuration\"><\/span><strong>How AEM Chooses the Best Configuration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>One key aspect of AEM configuration involves understanding which folder wins when multiple configurations exist.<\/p>\n<p>AEM will select the configuration that corresponds more precisely with any service triggered in an author instance when there are multiple matching configurations&#8211;in this instance &#8216;config.author.prod&#8217;&#8211;to trigger.<\/p>\n<p>As AEM defaults to its most generic configuration if no specific match can be made, I always ensure my configurations align appropriately with AEM&#8217;s priorities.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#ff8c7c&#8221; background_color_gradient_end=&#8221;#e5ba4e&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|69%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;||-5px||false|false&#8221; custom_padding=&#8221;|||2px|false|false&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/8423118_3895895.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; width=&#8221;85.4%&#8221; custom_margin=&#8221;-31px||-24px||false|false&#8221; custom_padding=&#8221;|22px|0px||false|false&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><strong>AEM Online <\/strong>Training<\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Up Coming Batches&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#E09900&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221; background_layout=&#8221;dark&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Deploying_Configurations_in_AEM\"><\/span><strong>Deploying Configurations in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Once configurations have been determined in AEM, proper deployment is key in terms of keeping them accurate.<\/p>\n<p>Any manual modifications made will revert when deployed without commiting them back into the codebase.<\/p>\n<p>Learned the hard way! AEM keeps everything streamlined, so if I change values in my configurations, I always ensure they&#8217;re added adequately before deployment &#8211; otherwise they disappear!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Making_Configurations_Run-Mode_Specific_in_AEM\"><\/span><strong>Making Configurations Run-Mode Specific in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM provides configurations with run-mode-specific settings. That means if I require different values depending on my environment (author versus publish, for example) I can structure my folders accordingly.<\/p>\n<p>For example, one could be created called &#8216;config.author.prod&#8217; with production values while keeping another called&#8217; config. author&#8217; to store default values or defaults, respectively.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Setup.png\" alt=\"AEM Training\" width=\"800\" height=\"945\" \/><\/p>\n<p>As AEM selects values automatically from run mode names, I double-check that it uses them correctly.<\/p>\n<p>A simple typo could cause AEM to pick the incorrect configuration, causing serious problems for our engine.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Avoiding_Common_Mistakes_in_AEM_Configuration\"><\/span><strong>Avoiding Common Mistakes in AEM Configuration<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A familiar misstep developers make in AEM is misnaming configuration files; rather than reflecting just its content as is, their names should reflect which service or feature the file pertains to.<\/p>\n<p>Another recurring challenge is failing to commit configurations properly before deployment, which leads to unnecessary confusion and debugging during implementation.<\/p>\n<p>Without version control, manual changes might vanish upon deployment, creating further frustration during troubleshooting sessions.[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Understanding_AEM_Log_Files\"><\/span><strong>Understanding AEM Log Files<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Logs in AEM play an indispensable role when working with AEM, and it is imperative that users are well-versed in how the different logs operate in order to troubleshoot issues or just keep an eye on their system&#8217;s health and performance.<\/p>\n<p>With AEM&#8217;s Log Folder available online, navigating logs in AEM is simple\u2014using it is even possible!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Navigating_the_AEM_Log_Folder\"><\/span><strong>Navigating the AEM Log Folder<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM methodically stores all repository-related tasks and information in its log folder; here, you record every operation performed within AEM and each code execution or system message sent out from AEM.<br \/><video src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Log-Files.webm\" poster=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"800\" height=\"auto\"><\/video><br \/>Exploring AEM&#8217;s log folder reveals numerous logs.<\/p>\n<p>These logs capture vital data about how the application\u00a0behaves, helping developers and administrators keep an eye out for any significant events that arise within it.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_Importance_of_Errorlog_in_AEM\"><\/span><strong>The Importance of Error.log in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>error.log is one of AEM&#8217;s essential log files, providing valuable insights into application errors and system-wide issues.<\/p>\n<p>Each time someone refreshes a page, triggers a function, or runs custom code, the action leaves a mark in error.log.<\/p>\n<p>When an issue occurs in AEM, Error.log should always be your starting point. It contains records of execution failures, application errors, and debug information.<\/p>\n<p>Such as <a href=\"https:\/\/cloudfoundation.com\/blog\/j2ee-interview-questions-and-answers\" target=\"_blank\" rel=\"noopener\">Java-related<\/a> errors or service outages, so error.log can help quickly pinpoint the root cause.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_Errorlog_Supports_Debugging_in_AEM\"><\/span><strong>How Error.log Supports Debugging in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Error.log Provides Support for debugging in AEM Debugging AEM becomes straightforward when error.log is utilised effectively.<\/p>\n<p>Any failed service execution, broken functionality or missing dependencies that leave their trace will leave behind signs in error.log developers regularly utilise to identify problems and correct misconfigurations.<\/p>\n<p>AEM ensures error.log captures both application- and system-wide issues. Should any suspected problems arise, searching error.log for actionable insights could provide efficient solutions to address them quickly.<\/p>\n<p><img decoding=\"async\" class=\"size-medium aligncenter\" src=\"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-Log-Debugging.png\" alt=\"AEM Training\" width=\"800\" height=\"2424\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Exploring_Other_Log_Files_in_AEM\"><\/span><strong>Exploring Other Log Files in AEM<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>AEM maintains various logs besides error.log to collect specific types of information. Each serves a distinct function, so administrators and developers can track events systematically.<\/p>\n<p>Logs generated by AEM help identify errors and improve performance. By tracking logs regularly, you can detect anomalies within configuration files or systemic problems before they arise, helping ensure system stability for any developer or administrator.<\/p>\n<p>Therefore, keeping tabs on AEM logs should always be an essential task of their job duties.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#064399&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#494fff&#8221; background_color_gradient_end=&#8221;#9ea6ff&#8221; background_color_gradient_type=&#8221;radial&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_start_position=&#8221;35%&#8221; background_color_gradient_end_position=&#8221;80%&#8221; transform_scale=&#8221;74%|71%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;-53px|-50px&#8221; transform_translate_linked=&#8221;off&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2023\/06\/Untitled-11.png&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_scale=&#8221;103%|103%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;11px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_padding=&#8221;|88px||||&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Georgia|700|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;23px&#8221; text_line_height=&#8221;1.3em&#8221; header_font=&#8221;Georgia|700|||||||&#8221; header_font_size=&#8221;19px&#8221; header_letter_spacing=&#8221;-1px&#8221; header_line_height=&#8221;1.2em&#8221; transform_scale=&#8221;171%|159%&#8221; transform_scale_linked=&#8221;off&#8221; transform_translate=&#8221;40px|44px&#8221; transform_translate_linked=&#8221;off&#8221; transform_origin=&#8221;70%|50%&#8221; z_index=&#8221;-161&#8243; width=&#8221;100%&#8221; custom_margin=&#8221;|-215px||||&#8221; custom_padding=&#8221;|0px||||&#8221; link_option_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; link_option_url_new_window=&#8221;on&#8221;]<\/p>\n<h1 style=\"text-align: center;\"><span style=\"color: #ffffff;\"><strong>AEM Course Price<\/strong><\/span><\/h1>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Offer Price&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#FFFFFF&#8221; button_font=&#8221;|700|||||||&#8221; transform_translate=&#8221;64px|65px&#8221; transform_translate_linked=&#8221;off&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_image src=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2019\/06\/logo_resize_color.png&#8221; url=&#8221;https:\/\/cloudfoundation.com\/blog\/&#8221; url_new_window=&#8221;on&#8221; _builder_version=&#8221;4.9.7&#8243; _module_preset=&#8221;default&#8221; transform_translate=&#8221;-36px|0px&#8221; transform_translate_linked=&#8221;off&#8221; custom_margin=&#8221;|||178px||&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_team_member name=&#8221;Sai Susmitha&#8221; position=&#8221;Author&#8221; image_url=&#8221;https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/03\/Sai-Susmitha.png&#8221; _builder_version=&#8221;4.9.7&#8243; header_level=&#8221;h5&#8243; header_font=&#8221;Titillium Web|700|||||||&#8221; body_font=&#8221;Titillium Web||||||||&#8221; body_font_size=&#8221;16&#8243;]<\/p>\n<p id=\"posted-message-container\" class=\"zcmsgcnt textL\" dir=\"auto\">The Journey of Personal Development is a Continuous path of learning and growth<\/p>\n<p>[\/et_pb_team_member][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding AEM and Client Libraries \u00a0Adobe [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":97331,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"2880","footnotes":""},"categories":[209],"tags":[],"class_list":{"0":"post-97155","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-adobe"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AEM Client Libraries | AEM Configurations &amp; Logs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AEM Client Libraries | AEM Configurations &amp; Logs\" \/>\n<meta property=\"og:description\" content=\"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding AEM and Client Libraries \u00a0Adobe [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudFoundation | Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-24T04:25:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-03T08:20:16+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"331\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"NAGENDRAG\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"NAGENDRAG\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AEM Client Libraries | AEM Configurations & Logs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/","og_locale":"en_US","og_type":"article","og_title":"AEM Client Libraries | AEM Configurations & Logs","og_description":"[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.7&#8243;][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_post_title meta=&#8221;off&#8221; featured_image=&#8221;off&#8221; _builder_version=&#8221;4.9.7&#8243; title_font=&#8221;Times New Roman||||||||&#8221; title_text_align=&#8221;left&#8221; title_text_color=&#8221;#000000&#8243; title_font_size=&#8221;47&#8243; background_color=&#8221;RGBA(0,0,0,0)&#8221; background_enable_image=&#8221;off&#8221; custom_margin=&#8221;|||10%&#8221; title_font_size_tablet=&#8221;40&#8243; title_font_size_phone=&#8221;35&#8243; title_font_size_last_edited=&#8221;on|desktop&#8221;][\/et_pb_post_title][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.9.7&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.9.7&#8243; text_font=&#8221;Georgia||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;22px&#8221; text_line_height=&#8221;1.9em&#8221; max_width=&#8221;800px&#8221; max_width_last_edited=&#8221;off|phone&#8221; custom_margin=&#8221;|||10%&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; hover_enabled=&#8221;0&#8243; text_font_size_tablet=&#8221;&#8221; text_font_size_phone=&#8221;&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; text_line_height_last_edited=&#8221;off|phone&#8221; sticky_enabled=&#8221;0&#8243;] Understanding AEM and Client Libraries \u00a0Adobe [&hellip;]","og_url":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/","og_site_name":"CloudFoundation | Blog","article_published_time":"2025-04-24T04:25:19+00:00","article_modified_time":"2025-05-03T08:20:16+00:00","og_image":[{"width":500,"height":331,"url":"http:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI.jpg","type":"image\/jpeg"}],"author":"NAGENDRAG","twitter_card":"summary_large_image","twitter_misc":{"Written by":"NAGENDRAG","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/","url":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/","name":"AEM Client Libraries | AEM Configurations & Logs","isPartOf":{"@id":"https:\/\/cloudfoundation.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#primaryimage"},"image":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI.jpg","datePublished":"2025-04-24T04:25:19+00:00","dateModified":"2025-05-03T08:20:16+00:00","author":{"@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4"},"breadcrumb":{"@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#primaryimage","url":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI.jpg","contentUrl":"https:\/\/cloudfoundation.com\/blog\/wp-content\/uploads\/2025\/04\/AEM-FI.jpg","width":500,"height":331},{"@type":"BreadcrumbList","@id":"https:\/\/cloudfoundation.com\/blog\/aem-client-libraries-aem-configurations-logs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudfoundation.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AEM Client Libraries | AEM Configurations &#038; Logs"}]},{"@type":"WebSite","@id":"https:\/\/cloudfoundation.com\/blog\/#website","url":"https:\/\/cloudfoundation.com\/blog\/","name":"CloudFoundation | Blog","description":"A New way of Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudfoundation.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/df6c7eba98f1bb15f2a100a9958266e4","name":"NAGENDRAG","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudfoundation.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09e08ba1102807a876f2c00245d6b955f0a9f027b40c181e9cee0cd2d927f84a?s=96&d=wavatar&r=g","caption":"NAGENDRAG"},"url":"https:\/\/cloudfoundation.com\/blog\/author\/nagendrag\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/comments?post=97155"}],"version-history":[{"count":10,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97155\/revisions"}],"predecessor-version":[{"id":98930,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/posts\/97155\/revisions\/98930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media\/97331"}],"wp:attachment":[{"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/media?parent=97155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/categories?post=97155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudfoundation.com\/blog\/wp-json\/wp\/v2\/tags?post=97155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}