Esri / solution.js

TypeScript wrappers running in Node.js and modern browsers for transferring ArcGIS Online items from one organization to another.
https://esri.github.io/solution.js/
Apache License 2.0
38 stars 12 forks source link

Hub Initiative not always swizzeled. #421

Open shoe913 opened 4 years ago

shoe913 commented 4 years ago

When deploying a solution with a Hub Initiative, the {{initiative.item.id}} variable is not always swizzled on an event list card.

Steps to reproduce: 1) In an organization with Hub Premium, deploy Recreation Outreach 2) On the HUB Page, navigate to the Hunting, Boating, or Fishing Pages

BUG: On the event list card, the {{initiative.item.id}} has not been swizzled. (Deployment may need to occur a few times to see the behavior, the page is not consistent).

@dbouwman @ghudgins

dbouwman commented 4 years ago

@shoe913 are you sure the org the deploying user belongs to has Hub Premium enabled?

If not, the initiative item is not created, and thus the id is not present to be swizzed in. @ghudgins and I have discussed a number of possible solutions, but nothing that's fail-safe...

shoe913 commented 4 years ago

@dbouwman

The org does have Hub Premium. If you look at this solution: https://arcgis4localgov2.maps.arcgis.com/home/item.html?id=c1d0a2d956ba4c9b9528e86ea5ba9440

It has been swizzled on the Main page and the Hunting page. Boating and Fishing didn't switch.

chris-fox commented 4 years ago

I can say I have also encountered this in the past with the follow button. I have only ever seen it with pages, and it is not consistently reproducible. Andy's test case above is good because it has 3 pages each with an events card and follow button.

dbouwman commented 4 years ago

Interesting - @shoe913 / @chris-fox can one of you set me up an identity in that org? dbouwman_localgov2 would be great, and dbouwman@esri.com for an email.

Typically, when we see things that work "sometimes", then it's not a foundational issue... i.e. the "swizzle" / interpolation process itself is sound.

However, that sort of behavior does smell like a concurrency issue... like those un-swizzeled items were created before the site had completed, and thus {{initiative.item.id}} was not in the hash used to interpolate those items. Once I can get into the org, I'll see what the .created timestamps look like, but that's my hunch

Given the current core "orchestration" system we currently use, I'm not clear if there is a means to make this more deterministic. However, my recommendation for re-working that code, specifically to be more deterministic should address this, if it is in fact a concurrency problem.

shoe913 commented 3 years ago

@dbouwman I've just added you to the org.

Thanks for taking a peek!