manager-ui icon indicating copy to clipboard operation
manager-ui copied to clipboard

Marketplace Feature: Sending Path in frame Message

Open ardeay opened this issue 2 years ago • 1 comments

It would be very valuable to hot link to marketplace app with a URL like /page/zuid that way apps can launch into relative content that can be linked throughout the manager.

Describe the solution you'd like Be able to link to a page like /app/80-f8a6fce7ed-kj6qgd/page/8-xyz-xyz which would pass the path /page/7-xyz-xyz in the message body like

{
  zuid: '8-zyx...',
  path: '/page/7-xyz-xyz',
  token: 'xxxxx'
}

Describe alternatives you've considered Maybe using query params? /app/80-f8a6fce7ed-kj6qgd/?view=page&zuid=8-xyz-xyz

Additional context This allows apps to be interconnected to content, in the manager for specific apps we support we could check is an app is install and provide buttons in the core parts of the manager like schema and content to hotlink to specific areas of analytics, layouts, etc.

ardeay avatar Aug 02 '22 13:08 ardeay

The question of data being passed between host(read: manager-ui) and guest(read: marketplace app) applications is simple, postMessage. For the particular need of guest app deep links we would probably want use an Actor pattern to allow for navigation messages back and forth between host and guest. i.e. The guest could send navigation messages to the host as well. The complexity arises if we link the code bases.

Concerns

  • Decision code on whether an app is installed hard links the two applications together as now the host would have knowledge of the guest
  • Solves for guest app deep links from host but is limited to that functionality
  • Does this introduce security concerns

Can you provide a concrete example? I imagine one would be.

The host content app should contain deep links to the guest(app-google-analytics) which loads analytics data specific to the current content app item


Ultimately I would suggest we aim for something more like; Guest apps can register widgets. Essentially we create a window in specific host app locations where guest apps can insert arbitrary functionality. This would allow for a guest to accomplish the outcome of contextual deep links but also allows for really rich experiences with logic that trigger actions within the guest app.

shrunyan avatar Aug 02 '22 17:08 shrunyan