Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

SDI with SPA component

Avatar

Level 2

All data to react (frontend) comes via .model.json, which contains all info of the page. If I want to have a component that should not be cached, rather gets called on every request and then .model.json should always gets updated content, how we can do that ? 

Use case is : On each request, I want to check whether the user is allowed for particular action and then pass that true/false to the model.json so that react does not render the component (want to achieve CUG at component level )

 

Do not wish to create a servlet as this info is required before page rendering and ajax call would delay rendering.

 

Also, can we still add HTL on component in AEM that been mapped with React so that data attributes can be read by react component during rendering ? And then use SDI on that component ?

 

Any pointers ? @Jörg_Hoh 

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Hi,

I wouldn't do that this way, because it can open a security hole. Just call the models.json and let the server-side implementation all the rest. If the user has enough permissions, the "secured" data is included in the model, otherwise it's omitted (or a flag set to false). 

And yes, CUG is working with requests to model.json as well.

View solution in original post

4 Replies

Avatar

Correct answer by
Employee Advisor

Hi,

I wouldn't do that this way, because it can open a security hole. Just call the models.json and let the server-side implementation all the rest. If the user has enough permissions, the "secured" data is included in the model, otherwise it's omitted (or a flag set to false). 

And yes, CUG is working with requests to model.json as well.

Avatar

Level 2

1. How caching works with SSR ? Looks like, with SSR enabled, the model json should not be cached and same goes with page. Because,  all pages have CUG based components.
2. Is CUG at component level is  OOTB with SSR ? I know page level CUG works OOTB with page model json and therefore in that case also, we can not even cache model json.

 

Avatar

Employee Advisor
if you are using CUG on publish, you should use permission sensitive caching on dispatcher (please see the documentation for it). CUG works only on a page level.

Avatar

Community Advisor

Just a thought: Perform a thorough testing with the SDI. I would prefer writing a schedulers or other approaches instead of using SDI.