Background

      The new Plugin Systems clearly defines Interfaces and Data access but does not grant access to global data structures of the framework.

      An example of the interface can be found in the comments below.

      Before we commit to ship the new Plugin System in 7.14, we want to validate it with customers.

      Assumptions to validate

      Supported by Plugin System Not supported 
      • Clearly defined data gets passed into the plugin
      • REST-API can be used to query more data
      • In the case of multiple plugins, browser-functionality (local storage) can be used to communicate and safe configuration
      • Propagation of Backend-Changes made by the Plugin (e.g. post requests) --> there is no service to refresh views, page reload can be used
      • Plugins are sandboxed - they have no access to information about the state of other plugins and site elements 
      • existing Camunda angularJS services and directives are disabled.

      We also have to validate if the current Interface provides enough information to the user or if we have to pass more data.

        This is the controller panel for Smart Panels app

            [CAM-11983] Validation of Plugin System

            Martin Stamm added a comment - - edited

            The structure of a plugin looks like this:

            export default {
              id: "externalPlugin",                                 // unique ID used for plugin exclusion
              pluginPoint: "cockpit.processDefinition.runtime.tab", // Plugin point ID 
              priority: 5,                                          // Order the Plugins, from highest to lowest
              label: "My Plugin",                                   // Title for Tabs
              render: (container, {processDefinitionId} => {        // called when the Plugin container is created
                // 1st argument: DOM node
                // 2nd argument: Object with additional Data
                container.innerHTML = "A tab for the process " + processDefinitionId;
              },
              cleanup: () => {}                                     // called when Plugin container is removed
            };
            

            Plugin point IDs are the same as defined in https://docs.camunda.org/manual/latest/webapps/cockpit/extend/plugins/

            Martin Stamm added a comment - - edited The structure of a plugin looks like this: export default { id: "externalPlugin" , // unique ID used for plugin exclusion pluginPoint: "cockpit.processDefinition.runtime.tab" , // Plugin point ID priority: 5, // Order the Plugins, from highest to lowest label: "My Plugin" , // Title for Tabs render: (container, {processDefinitionId} => { // called when the Plugin container is created // 1st argument: DOM node // 2nd argument: Object with additional Data container.innerHTML = "A tab for the process " + processDefinitionId; }, cleanup: () => {} // called when Plugin container is removed }; Plugin point IDs are the same as defined in https://docs.camunda.org/manual/latest/webapps/cockpit/extend/plugins/

            All validation activities are completed, so I am resolving this ticket.

            Thorben Lindhauer added a comment - All validation activities are completed, so I am resolving this ticket.

              andre.bappert Andre
              martin.stamm Martin Stamm
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: