Webinar Date: June 19th, 2024
This webinar has been conducted on Wednesday, June 19th - 5pm CEST / 8am PDT / 8.30pm IST. Please view the recording below.
Improving the developer experience for AEM Assets with our new APIs and Events
AEM developers will have the opportunity to explore the newly introduced Assets Open APIs and cloud-native I/O Events that we are offering. These advancements enable the creation of out-of-process AEM extensions. During this session, we will demonstrate how to effectively implement these tools. This demonstration will show developers how they can streamline their workflows, enhance their development speed, and reduce ongoing maintenance efforts. Additionally, we will dive into practical use cases and best practices, providing a comprehensive understanding of how these innovations can be leveraged to optimize development processes.
Presenters
- Ramya Reddy, Computer Scientist, 51ºÚÁϲ»´òìÈ
Chat Experts
- Ian Reasor, Senior Computer Scientist, 51ºÚÁϲ»´òìÈ
- Ievgen Nedoviesov, Manager, Software Engineering, 51ºÚÁϲ»´òìÈ
Webinar Recording
Okay, recording has started. So handing over to you, Ramya. Feel free to start. Thanks. Thanks, Laurel. Hi, everyone. I’m Ramya. I work as an engineer in AEM assets engineering team at 51ºÚÁϲ»´òìÈ. Welcome to this AEM gems webinar. In this session, you’ll learn how to improve developer experience for AEM assets on cloud service with the new asset open APIs and cloud native IO events that are introduced recently. There are similar APIs and events being built for AEM sites, but we’ll be looking only at the asset ones in this session. To begin, I’ll discuss the issues associated our old APIs and events along with this proposed solutions to address these challenges. Next, I’ll cover a few use cases that demonstrate the integration architecture. I’ll then demo how to implement one of the use cases for building an out of process AEM extension using these newly introduced tools. Following that, we’ll explore how to get started and use these new APIs and events and then move to Q&A. Let’s start with the challenges that we have with the old APIs and events. If you have been involved with AEM, you’re likely aware that the old AEM APIs were developed nearly two decades ago and developers are often overwhelmed with all the different APIs available. That is the JCR, Sling, WCM, the HTTP Mac APIs. And it could be confusing for developers when determining the best practices to utilize these APIs. Developers using these APIs also need to have a deep AEM expertise. For example, using a resource resolver or a session, etc. Now let’s discuss about events. AEM events powered by the add-on module, it refers to a legacy way of consuming AEM events. Customers were required to either install this add-on module on their on-premise instances or deploy the same on cloud service environments to start consuming these events. Using these events means we need to implement in-process customizations that would require deployments via cloud manager pipelines and also dependent on AEM releases. Now let’s look at the solutions. AEM as a cloud service offers a variety of APIs that adhere to open API specification. A modernized open API implementation of the asset APIs are available now in pre-release mode for early adoption customers. These APIs provide all the modern tools like Redox Playground where you can try these APIs. You’ll also see common patterns across all solutions in AEM. For example, a problem returned in response would be consistent across assets and sites. And any developer who has worked with the HTTP APIs should be able to use these APIs and implement customizations as needed. AEM cloud service events. So these are the new cloud native events that are available out of the box. These events are routed to 51ºÚÁϲ»´òìÈ I O by default and they are available instantly as soon as you subscribe to them in 51ºÚÁϲ»´òìÈ developer console. There is improved velocity now as it is easy to subscribe to these new events. You can also process these events according to your project needs in most lightweight, scalable and secure ways. The most important of all, these events help to achieve out of process extensibility. That means you can avoid custom code in AEM run times for better robustness and also this reduced effort when you deploy, test and maintain AEM as a cloud service. Let’s look at few use cases involving the solutions we just discussed. Here we can integrate AEM with a third party system such as a PIM product information management system to update asset metadata in AEM with the product information that comes from the PIM system. In this use case, when an asset is uploaded to AEM and processing is completed, an asset processing completed event is generated and sent to I O events. This is then consumed by a runtime action deployed on 51ºÚÁϲ»´òìÈ I O. Please note you could also register a third party webhook or also integrate with Amazon EventBridge. We can then retrieve this product information from a PIM system in our custom runtime action and use these new asset APIs to update the product information for asset in AEM. Once this is done, customers can use this product information to search assets by a SKU number and also drive business processes based on this product metadata. So this is how we achieve out of process extensibility. This is the second use case that I briefly want to discuss. When an asset is approved in AEM, we want to forward this asset approval to users in a Slack channel. When an asset is approved, that means an asset metadata updated event is generated and sent to I O events. This could be consumed by a runtime action in 51ºÚÁϲ»´òìÈ I O. You could also optionally get additional metadata by calling asset APIs from your runtime action and then use this information in your notification. This way, we can inform users about certain events from AEM in external channels. Okay, let’s get started with the demo. Firstly, I would like to show you the documentation of the new asset APIs and events. You can go to developer.adobe.com and then click on explore our APIs here. On the left, you could filter by 51ºÚÁϲ»´òìÈ Experience Cloud and click on the button here for 51ºÚÁϲ»´òìÈ Experience Manager. So this is the landing page for all the open APIs for AEM as a cloud service. And this is the link that is of interest to us, the asset author API. This is a redoclea playground where you can see all the APIs and events that are available. On the left panel, you should be able to see the metadata APIs and the asset API that are currently available and also the events. I’ll probably zoom in and then, yeah. So we’ll look at one or two APIs here. I’d like to show you how we can try these APIs and these will also be shown in the demo, used in the demo as well. So let’s start with the GetAssetMetadata. As you can see, you can learn more about the API here, what are the required request parameters and the expected responses here. On the right panel, you can see the request samples and also the response samples. So let’s start with clicking on the triet here. Actually, let me switch to this tab. I have some values pre-populated. Okay. So first of all, you can enter the AEM environment information here in the bucket so that your target server is populated. And then for the bearer token, you can use the access token from your project in 51ºÚÁϲ»´òìÈ Developer Console. Let me show you that quickly. Or maybe this is the one, I think. Yeah. So this is the access token that you can use and the XAPI key will be the client ID.
So you can enter asset ID in this format and this URNAID AEM followed by the ID. So that will be the JCR UUID. You can also get this value from the UI in asset properties. So this is the ID that I’m using. And then if none match is an optional header, which takes the value of an ETag and ETag is nothing but a current representation of the target resource or asset in this case.
I can talk more about this when we try the patch metadata. And then since this is an experimental API, we have to select this value and then let’s do a send.
Okay. So this is the response. You can see the asset ID, the asset metadata, and followed by the repository metadata.
So in the response headers, you can observe that an ETag value is sent, which represents the current representation of this asset. So let’s go to the patch and update the asset metadata. So this target server is the same and then we’ll use the same bearer token and XAPI key.
So for updating asset metadata, you can pass one or more patch operations that are available here. You can either add a property or you can remove it. You can replace, copy, and move properties. And then also test a property if it has a certain value or not. So let me go here.
So for simplicity sake, I’m just adding a new property here. Let me change this to another property and then we’ll use the same asset again. And here, if match is a required header that takes an ETag value. So let’s make sure we pass the latest ETag value and we can get that value from either a get metadata or a head metadata.
Let me copy this from here.
If we don’t pass in the latest ETag value, then we will get a 4-12 precondition failed error. So it starts with A4A.
Okay, so that’s the correct one. And then let’s do a reset. Okay, so the patch is successful and an ETag value is again returned, which reflects the current state of the asset now. And you can also see in the response that the property that we added, it should be added to the asset metadata here. Yeah, so this was the one that we just added.
So this is how you can play around with the APIs and provide us any feedback.
Let me get started with creating a project in 51ºÚÁϲ»´òìÈ Developer Console. So the prerequisites for this demo are, you need to have access to AM as a cloud service environment with admin access and then also access to 51ºÚÁϲ»´òìÈ Developer Console and runtime. And also assuming that you have 51ºÚÁϲ»´òìÈ IOCLI set up. Here, I will start creating a new project from a template. I’ll use the App Builder template.
So using the App Builder template, I will have some boilerplate code already for creating custom runtime actions. So we have this and we’ll use the product workspace.
Next, I’ll go and initialize this app that we just created using AIO App in it.
This is to set up the project on my local so that I can update the runtime action with the custom logic that we want and then deploy the runtime action as well. So let’s select the org.
This was the project that I just created, so I’m going to select it.
I’ll look for all the templates that are available. Okay, so let me select.
Yeah, the generator apps EXE shell. I’m going to use this extensibility template so that I get a generic action that I could use.
Here, which 51ºÚÁϲ»´òìÈ IO app features you want to enable for this project. So I’ll select actions. I want to deploy a runtime action and then select type of actions to generate. I will go with the generic here and then the type of UI I want to add to your project. I will use pure HTML JS.
And then what would you like to name this action? I’ll just go with the default options here. So this template is actually creating two runtime actions. One is to access an external API that we’ll be using. Another one is to create messages in cloud events format and publish to IO events.
Okay, so this project is being initialized for workspace stage. Now I’ll go and open this project in my IDE.
I’d like to show a few files here that we will be updating soon. So if you look at the actions folder, so these are the two runtime actions that got created. And I’ll be updating this index.js to add my custom logic. So here is where we will reach out to PIM system to get the project product information and then use the asset APIs to update asset metadata. And then there are two other files that I am interested. The .env file where we’ll be adding client ID, client secret and scopes. So these properties will be needed to generate the access token.
And there is also app config.yaml where I’ll be adding these input parameters.
Okay, so let’s go and see if, okay, this is still being initialized.
Ramya, if I may shortly interrupt, since we’re waiting for the update, could I ask you to click on hide where it says you’re sharing the screen at the bottom? Oh, okay. Yeah, perfect. Great. Thank you. Cool. Yeah, sure.
Okay, so the app is initialized. Now let me switch the workspace to a production one.
Okay, so this is asking to override some of the files that were initialized for the stage. So I will choose to override it. Same with the AIO as well.
Okay, so let’s go ahead and deploy this runtime action so that I’ll have an action to select when I’m adding an event. So I’ll do AIO app deploy.
Okay, so this will deploy a runtime action. While this is getting deployed, let’s go and add an API to this project. So I’m in the production workspace and you can click on add service here to select an API. Here, let’s filter by the experience cloud and you should see this AMS cloud service APIs. So please note this card is available to only those users who are registered in the pre-release program. And also this will be replaced by an asset specific card once we are generally available towards end of this year. So let’s select this APIs.
And let’s add a credential OAuth server to server.
Here you can select a product profile to gain access to our AM environment. So I’ll scroll here to see the one that we need to use. Okay, so this is the one that I want to use.
Okay, so the API should be added along with the OAuth server to server credentials as well.
So I’ll quickly switch gears and I need to do a step here in cloud manager UI. So I need to add this client ID. I need to allow list the client ID on AM. To do that, let’s go here. Let’s update this on the cloud manager UI. Select this environment and click on the configuration tab and we can update it here. So we need to add this 51ºÚÁϲ»´òìÈ provided client ID. And update this value with the client ID from our 51ºÚÁϲ»´òìÈ developer console project. The OAuth credentials that we just created. And let’s save it.
So I did this here because this will take some time to restart the AM environment.
Okay, so we can see that this is the AM environment. So we can go and add an event now. So to add an event to the project, again you can click on add service here and select event.
Here you can select AM assets.
That is our event provider. And then choose the AM instance from which you want to receive notifications. So this is the AM environment that I want to use.
And here you can choose the event that you’d like to receive notifications about. So I’ll choose the asset processing completed.
And let’s select the OAuth server to server credentials that was already added. And I’m going to name this as asset processing complete. You can add more than one event to your project. So naming it appropriately would be better.
Here you can choose how you would like to receive events. So by default you will have journaling API enabled once the event registration is completed. So journaling is nothing but a pull-based mechanism to retrieve events. And from your custom application you can retrieve one or more blocks of events using the journaling API endpoint. And there are three other optional ways to receive events as well. You can register a webhook here by specifying the webhook URL and specifying how you’d like to receive the events. And then you can also select a runtime action to consume the events. This is what we are going to do in the demo. And then there’s a third way to read events, to receive events directly from your AWS account by specifying AWS account ID and AWS region. So let’s go here and select the runtime action that we just deployed. So generic is the one that we would like to use. I’m going to select that and then save configured events.
Okay, so let’s go back to our IDE here and let’s update these files.
So here in the ENV file, I will be updating these properties. So let’s add the client ID from our OAuth server to server credentials. Since these are secured credentials, I’ll be deleting them at the end of this demo. So let’s use the client ID and the client secret.
And then the scopes.
You can see the curl command that is used to generate the access token here.
So let’s go back and add, update the app config yaml.
So we add them as inputs here so that we are able to read them in our runtime action. And let’s go back to the runtime action.
And I’ll use, I have an updated one, so I’ll use this and I can give a quick walkthrough.
Okay, so here in the runtime action, this main function will be executed by IO runtime. And once an event is received, once an event is consumed, we’ll read the event and we’ll make sure the event type is asset processing completed.
And then we’ll use the client ID, client secret and scopes to generate the access token.
And once we generate the access token, we can update the asset metadata with the product information. So to update the asset metadata, I need to get the latest ETag value. So we can either make a get metadata or a head metadata call first to get the ETag.
So here I’m doing a get metadata. So in the headers, I’m passing the authorization, all the required parameters and the xapi key. Let me get the latest client ID from here.
And then retrieve the ETag value from the header response headers, and then make a patch request. So let’s update the xapi key here as well. Yeah, and this takes the if match the ETag value from the value that is retrieved from the get asset metadata. So to add the metadata, I’m adding two properties here, skew and category. Here is where you can reach out to your PIM system to retrieve any product information. And then you can pass these values here. So I’m just hard coding the test skew and a brand.
And then we’ll execute this call. So this is what we have for our custom runtime action. Now let’s go and deploy this. So I will do aio app run so that this runtime action is deployed. And I can also see logs here locally. If there are any issues, we should be able to debug.
Okay, so let’s go back to our 51ºÚÁϲ»´òìÈ Developer Console. So here are a few things that I would like to show. If you go to the runtime here on the left, you should be able to see the user defined actions, the runtime actions that we deployed. And you can also notice the versions that we have here. And then for an event, if you go to the event, you should be able to edit the event registration by clicking on the top right. And you should be able to edit anything if needed, like you can update the event itself and you can update the consumers. So you can see the user defined actions. So far what we have done in the demo is that we have created a project in 51ºÚÁϲ»´òìÈ Developer Console. We have initialized the app on our local using aio app in it. And then we have added an API to this project and also OAuth server to server credentials. We went to cloud listed the client ID on AEM by adding 51ºÚÁϲ»´òìÈ provided client ID there. And then we also added an event selecting the event provider and the event and also event consumer. We have also updated our runtime action and we have deployed. So once this is deployed, okay, I see this deployed and maybe we can quickly go and check the version should be incremented.
Yeah, so it’s changed to 0.0.2 and let’s also check AEM if it’s up and running. Okay, I see this up and running. Now we should be able to upload an asset in AEM. And once the processing is completed, an event should be generated and sent to IO events and it should be consumed by our runtime action. And the product metadata should be updated for that asset in AEM. So let’s go here and let me upload an asset.
Okay, so it takes a couple of seconds to process this, create renditions and the metadata is extracted. So once this processing is completed, we can go to our 51ºÚÁϲ»´òìÈ developer project and check the event. Let’s go back here. So in the event, you should be able to browse the events that are consumed. So if you go to, if you select the event, you should be able to see this debug tracing where you’ll see the event coming here. And then also there is an event browser where you can see, you can browse events with the journaling API.
Let’s see if this is done. Okay, so the processing is completed. Let me go back and click on this refresh list. Okay, awesome. So we have the event here. That means it is consumed by runtime action as well. So if we expand this, you can see the payload and to just verify that this was the event asset that we just uploaded. So in your runtime action, you can read any of these properties that are coming from the event. So we have used the asset ID and the repository ID. So let’s go back to AEM to see the asset metadata updated.
So I’ve updated the default metadata schema here to add the properties skew and category. So these are the values that we updated on this asset using our APIs from the runtime action. So that wraps up my presentation. Let me let the demo, let me go back.
And let’s see how we can get started to use this asset APIs and events. Asset APIs for AEM as a cloud service are experimental. They are available to pre-registered users in the pre-release mode. Please reach out at AEM-APIs at adobe.com to get access to these APIs and provide any feedback.
The asset cloud native IO events are generally available. Please note while the previous AEM eventing solution is still supported for on-premise and AMS, the new AEM eventing is by design initiated for AEM as a cloud service only. And the list of available event types for AEM CS is being expanded on a rolling basis. If you’re missing any event types you need, please contact the AEM eventing team at AEM-events at adobe.com. I’ve also included links to the new asset APIs and events documentation along with the tutorial on assets and the PIM integration that we just saw which uses our new APIs and events.
Let me give a quick recap of what we have learned in the session. First we have looked at the challenges with the old APIs and events in the past. We have seen that the new APIs and events and the solutions that we are offering for AEM assets. Then we looked at few use cases and saw a demo on how we can implement out of process extensions using this new integration architecture. Lastly we learned how to get started using the new asset APIs and events. That wraps up my presentation. We’ll proceed with the Q&A session now. Feel free to ask any questions you might have.
Rami, we had a couple of questions come in that I thought might be good for you.
Let’s see, the first one was if customers can fetch and update custom metadata with these APIs. Can you come again? The question is if customers can fetch and update custom metadata with these new APIs. Yes, they should be able to. There was a question somewhat related which is what is the difference between these new APIs and the assets, HTTP APIs that offer use cases like retrieving and updating asset metadata. Is it the differences between the overall APIs in general or just the specific asset metadata related ones? The question was around use cases like updating asset metadata. Okay, so there should be definitely like there are some missing APIs in the HTTP APIs that I know and with the asset open APIs we are sending asset metadata that includes your custom metadata and any processed information like the tags, the smart tags as well and you can send the repository metadata as well. So I would say the metadata that is being structured is different when compared to the old HTTP APIs and there’s an opportunity now that you can patch one or more properties on asset metadata using our APIs.
We had a follow-up question to your answer which is what do you mean by repository metadata? So that is something, this metadata is something that is generated by the repository and it cannot be edited by any user like for example when an asset is created and updated and last published date and so on. So that is like the read-only metadata but asset metadata is something that we can add new properties to. Great thanks. Christian Wagner asked if the old APIs will be deprecated and if yes when? So the old APIs, once we have this feature parity like once we have all the APIs on the open APIs they would be deprecated and we are working towards it. So the APIs that we have currently are experimental and the APIs will be generally available mostly towards end of this year.
Thank you. Next question was asking if we could capture an event, in the event if we can see which processing profiles were used. So if we uploaded an asset, a processing profile set to apply a Lightroom filter, can we capture the event to know which particular Lightroom filter was used? So right now in the events we have certain properties being sent. I’m not sure if a processing profile value is being sent currently but if you could email your, if you can email your requirement to AAM assets I think that would be a good forum to take it forward and discuss. Sonal asks if to use these new APIs they need to create a project in the 51ºÚÁϲ»´òìÈ Developer Console.
Yes we need to. Yep.
So as I showed that you should be able to add the asset APIs card once you register in the pre-release program you should be able to see that card and start using the APIs.
Rakesh has asked what the use cases are for AAM sites but for this session Rakesh we’re going to just talk about assets. There are sites APIs available for content fragments at the moment but that would be outside the scope of the session.
Puneeth asks about the current assets HTTP APIs and if they’re going to be deprecated named as a cloud service but I believe that Ramya’s already answered that question. George Taylor asks if there’s any restrictions on what the app can call. I’m not clear on what you’re asking there George, maybe if you clarify your question we can answer that for you. Saravana asks if they want to pass custom payload files into actions. So for example they have a CSV of metadata they want to upload into AAM and they want to create a runtime action to do that.
Do you know of a way that they can use a runtime action to process something like a CSV file? I’m not super sure on that maybe you can also email us at AAM events and we can take a look at that.
Oh I see George was asking in your runtime action in the example that you gave you’re talking to a PIM system. He’s asking can it call any internet-based system to get data via the API to add to AAM? Yeah that should be possible, yep.
I don’t know what your question is Sanal. Sanal says that there’s two use cases, explain one and for the other one is something with slack what does it mean? I don’t know what you’re asking yourself.
Yeah so I have shown like two use cases and the first use case was the one that I did a demo and the second use case I just wanted to put out the generic use case where events are consumed and these events are sent as notifications to a slack channel so that was just another use case. So you could send that to anywhere you can integrate with programmatically Sanal. I think she was just showing kind of the use case of getting notifications out of the…
George Taylor asks if the new APIs also allow updating renditions and potentially adding additional content or is it limited to the metadata changes? So the API that we use so the API that we have currently it’s just to update the metadata but we can look at adding renditions if that’s possible in our future iterations.
Sanal asks we can send notification of an asset outside of AAM also. Are you asking if you’re you can listen for events of assets outside of AAM or if you’re sending notifications outside of AAM? The use case was to send notifications to some system outside of AAM based on things that happen inside of AAM but the session is about events that are being raised due to things happening inside of AAM. I’m not sure where your question is I’m sorry. And I guess other people have started having conversations via the Q&A pod.
I think we maybe have answered the outstanding questions at this point. Does anybody have additional questions? So while we’re waiting for additional questions to appear, thank you very much Ian and thank you Ramya for your presentation and demo. I’d just like to point out that we gather all the feedback and feedback is valuable to us so I’d like to ask you to complete the ending poll where you can wait the session and send us a request for or proposals for other sessions and webinars. So it’s just a one or two minute poll. I posted the link into the general chat. Thank you. Saravana has asked if there are events if an asset gets published into dynamic media.
Not right now. So we are working on like published events that will be available soon but not right now.
Andre asks if customers will still have the ability to create and use custom events.
What is meant by custom events? Sorry I didn’t get that.
I think he’s referring to the fact that with the add-on you can customers can generate whatever custom events they want and send those events.
Yeah I answered this in a previous answer to a question Andre which was that the custom event provider is being deprecated but it’s not being removed yet. The goal eventually someday would be that we’re producing enough events for enough topics from out of the box that you wouldn’t need custom events. That those would answer whatever business cases you have but for today we’re not removing support for that add-on so you’ll still be able to generate custom events from now.
Are there other questions? We’re gonna wait another moment and then slowly end this session if there are no additional questions. There were a couple questions that came through about asset upload and the old create asset API and how customers should should be uploading assets. Is that something that you could speak to? Yeah so we have new APIs planned to replace the upload APIs that we have currently but that is something that is not available in open APIs right now.
So Nal asks if they could use these asset APIs in an AEM project itself. So since these are experimental I’m just thinking like we would need to still do a couple of things like adding.
Okay so without 51ºÚÁϲ»´òìÈ developer console is it? Yeah I think so. Yeah I think they’re asking if they could call these APIs from inside of the project. So I think that’s a good question. Yeah I think so. Yeah using the… I think they’re asking if they could call these APIs from inside of code deployed inside of AEM and I would suggest this and all that the whole purpose of these APIs is to be able to add customizations outside of AEM. So you wouldn’t want to deploy code inside of AEM that was making calls back to itself via HTTP API. The whole idea is to call from outside of AEM against these APIs.
Saravana has asked if they can do ingestion with the asset compute microservice with a similar action and if there’s hiccups in volume like if it can’t process more than a gigabyte of assets. I think some of that may be a little out of scope of the presentation here today. Any uploads that you do during using the supported upload APIs, I know I posted some links to a previous question here, will be processed via the asset compute microservice and there are some limits in terms of what the asset compute microservice can process. Those would be documented but they’re not part of what we’re covering in the presentation here.
Juan Sanchez has asked if there’s an API that can be used for searching assets.
We don’t have a search API yet but that’s in our to-do list like we’ll be working on the search API very soon. In the meantime, Juan, you might want to take a look at the query builder API for it today. We know that it’s a bit limited which is part of why we’re looking at adding a new search API.
Neha has asked what the recommendation is to ingest an asset from inside AEM into AEM. I’m a little confused by the question because if it was already inside AEM I don’t know why you’d need to adjust it. I think maybe you’re asking what the recommendation is to ingest assets by using code that’s deployed to the AEM environment and the recommendations to not do that.
It’s part of our best practices for AEM as a cloud service. I will post again maybe to the general chat the two links that I shared earlier. This first one that I’m pasting here are developer reference materials for assets as a cloud service. And then the second is for a utility called the AEM upload that we provide as an SDK to make it easier to do the uploads. But we don’t currently support streaming the asset binaries that you’re uploading through the AEM JVM and this architecture we’ve developed is specifically to avoid that. So we don’t recommend that customers do uploads from codes running inside of the AEM environment. Okay. Thank you, Ian. So we have answered all questions. We’re going to wait one more minute and if no other questions appear we will close the session.
And before you leave, please make sure to post your feedback in this poll, in the ending poll we have posted in the general chat where you can rate the session and provide suggestions for further webinars. Thank you.
Sonal says, as you said, these APIs are experimental for now which is why the project needs to be created in developer console but in the future we can use directly in an AEM project.
In AEM project as in not in the developer console? No, yes. We’re not using the developer console because this is experimental. We’re using the developer console because that is the way that you’ll provision access for these APIs.
It’s not a function of it being experimental. That’s just the design of the architecture. Yeah. You should be able to use the APIs using your repository URL and use the API endpoints. So that should work as well. Not necessarily from your 51ºÚÁϲ»´òìÈ developer console if that is what you meant to ask. Saravana asks how to read the logs inside the runtime action.
So when we deploy this, as I showed to see the logs on my local, I had to do AIO app run so that’s for the development purposes. You can deploy the action to remote and also see the logs. If there are any issues, you can debug in your local using AIO app run. How would they see the logs once they deploy the remote action? There should be some way to see the logs in the 51ºÚÁϲ»´òìÈ developer console. I’m not super sure on that. Maybe we can get back to you on this.
Okay. Yeah. We’ll follow up with you, Saravana.
Sanal clarified that they’re asking if they can get access to the API only from the developer console. Sanal, if you want to create a server to server integration and you need to create a technical account to connect, you would need to use the 51ºÚÁϲ»´òìÈ developer console to do that, to access these APIs. David Benj, welcome, David. As said, an app builder, you can log forward to New Relic or other providers. So if you want to monitor your logs from the app builder action on Saravana, you may want to set up log forwarding in a way like David is suggesting.
All right. I think we have answered all questions. If you still should have a question or that you haven’t posted it or you need to think about it, you can still post it in the contextual thread post the session and we can answer this there. So thank you very much for attending and for your attention. Also, thanks again to Ramya, Ian and team. We’re going to end the session now. The recording will be posted by end of the week and the contextual thread first and then followed by the AEM gems archive, which is adobe.com slash go slash gems. Thanks. And I hope you found this session valuable. Have a nice day or evening. Bye bye. Yep. Thanks. Bye. Bye.
-
For session specific community interactions on this webinar on Experience League please visit the respective .
-
To receive notifications on our upcoming webinars, please register at .