HTML Client SDK

What’s New for Client Plugins in vSphere 7.0

vSphere 7.0 is a huge release for VMware with the introduction of Project Pacific and many other improvements taking virtualization to the next level. At the same time, 7.0 holds a number of enhancements to vSphere Client SDK and UI plugins.

 

Plugin Auto-discovery

 

Traditionally detection, deployment and undeployment of vSphere Client plugins have been triggered by a new user login or vsphere-ui service restart. This leads to delayed consumption of changes to third-party vSphere solution extensions. vSphere 7.0 brings a complete user experience by making sure the vSphere Client matches the state of the vCenter Server extension registrations at all times.

Installing Plugins

When new plugins are registered or existing plugin extensions are updated the plugins are asynchronously downloaded and deployed to the vSphere Client. The user is presented with a notification banner indicating which plugins have been installed. Only a browser refresh is needed to load the latest plugin UI elements.

Uninstalling Plugins

Removal of unregistered plugins used to require a full vsphere-ui reboot. Starting from 7.0 only a browser refresh is needed to unload and remove the obsolete plugin UI elements.

 

RBAC Support for Plugin Management

 

Plugins can be enabled or disabled for a particular vSphere Client instance through the Client Plugins view. The 7.0 release brings the next step in allowing full control on managing plugins – a new Plugin.Management privilege. Enabling and disabling plugins can be performed by:

  • any logged in user on versions 6.7 Update 2 and earlier.
  • members of the Administrators group on versions 6.7 Update 3 and later.
  • users who have the Plugin.Management privilege assigned since version 7.0 GA.

Plugin Management UI now creates vCenter Server tasks for plugin management operations next to the tracking of plugin deployment status.

 

New Plugin APIs & SDK tools

 

User settings & UX

A dedicated Plugins section has been added to the Shortcuts page. Remote plugin shortcuts are generated by the vSphere Client based on the known plugin display name and icon. All navigation entry points for remote plugins (Menu, Navigator, Shortcuts, etc.) use the default display information indicated by the remote plugin manifest: localized name of the plugin product and vendor logo passed as a style sheet which allows icon scaling.

There is a number of user preferences available to VI admins for changing the vSphere Client look and feel. Local and remote plugins can now adapt to:

  • dark theme changes to select their dark icon set along with the dark mode UI elements. More information about using vSphere Client themes can be found in the SDK documentation.
  • date format changes to modify how dates and times are displayed within the plugin-owned UI views (app.formatDateTime and event.onDateTimeFormatChanged APIs).

The upper limit of modal dialog height for plugins has been increased to accommodate plugin modals with higher real estate requirements. Modals used for simple statements or questions to the user no longer need to bootstrap the whole UI framework within the plugin iframe. Instead local and remote plugins can take advantage of a lightweight confirmation modal that is handled by the vSphere Client platform (modal.openConfirmationModal API).

Plugin Topology & Registration

Next to the initial support of SHA-1 thumbprints for plugin downloadables the vCenter Server extension registrations now support SHA-256 thumbprints as well.

The vSphere Client SDK team received a number of questions around the supported topologies and ability to do load balancing of various operations. 7.0 release includes extended documentation with more architectural considerations as well as introduced support for multiple plugin server registrations with a single vCenter Server. This capability allows vendor solutions to distribute workflows and responsibility between multiple servers – one is always used to serve the remote plugin UI and manifest while the other “auxiliary” servers can be dedicated to specific vendor-defined use cases. Those are explicitly labeled by the plugin solution and can be retrieved from the vCenter Server through the new app.getPluginBackendInfo API.

A notable improvement is that most changes to plugin extension registrations are now consumed immediately even without increasing the plugin version. This is intended for ease of development while the Production recommendation remains to always increase the version when a plugin change is needed.

Navigation

A number of vendors are investing in separate plugins for the various solutions in the their portfolio – for example, dedicated networking, storage or backup plugins. While achieving separation of concerns these products are often interconnected and benefit from integration and interoperability between each other to serve as a complete infrastructure management platform.

In recognition of this use case the vSphere Client now supports ability to navigate to another remote plugin (app.navigateToRemotePluginView and app.getRemotePluginNavigationMap APIs). To prevent accidental or malicious requests the capability requires a remote plugin to explicitly indicate in its manifest which UI views can be navigated to (if any) and what source plugin IDs are allowed. By default external navigation to all plugin UI views is blocked. 

Тo properly reference their resources remote plugins can now leverage the app.getProxiedPluginServerOrigin API retrieving their proxied plugin server URL. This is a relative location of the plugin as constructed by the vSphere Client and vCenter Server’s Reverse proxy.

Dev Tools

vSphere Client SDK contains the usual improvements to the local and remote SDK samples demonstrating the new APIs.

A significant improvement of the developer experience is the ability to redeploy local and remote plugins in dev mode. Just by adding the URL parameter pluginDeveloperMode=true the Client Plugins view will show a REDEPLOY button which triggers a full plugin re-installation (both download and deployment).

 

In summary

 

Getting started with plugins has never been easier. Developers and vendors can use a dedicated Hands-on-labHOL-2012-04: Building a vSphere Client Remote Plug-in or just follow the new quickstart video:

Full details about the 7.0 release of the vSphere Client SDK and related documentation are available on the vSphere Client SDK home page.

Please direct any questions to the vSphere Client SDK forum or the comments section below.