When you register a plug-in with a vCenter Server instance, information about the plug-in server is stored in an Extension record with the ExtensionManager. Registration information includes endpoint addresses of the plug-in's primary server and of any auxiliary servers that the plug-in comprises.

The Extension record stores descriptors for the plug-in servers in the server property, which is an array of ServerInfo objects. The first element of the array represents the manifest server. All other array elements represent auxiliary servers, in any order. Several properties of the ServerInfo object must be set in specific ways:
type
Contains a service identifier, which is a string value chosen by the developer. The string enables client code to distinguish between auxiliary servers.
A best practice is to assign the value MANIFEST_SERVER to the first element of the array, to identify the manifest server for the plug-in.
url
Contains the server endpoint address. The vCenter Server reverse proxy translates the server endpoints into proxy endpoints, which the JavaScript API makes available to front-end code. In the descriptor for the primary server, which also serves the manifest file, the url property must contain the full path to the plug-in manifest file. Relative URLs for HTML content resolve relative to the directory that contains the manifest.
Note: In the descriptor for an auxiliary server that supplies filter choices for dynamic extensions, the uri property must end with a slash (' /'). See Configure Dynamic Extensions.
serverThumbprint
Each server descriptor must contain either the thumbprint or the server certificate (below) or both.
serverCertificate
The SSL certificate for the server endpoint in strict PEM format (string). In the plug-in server certificate, the server host name must be specified according to subjectAltName extension (RFC 2818, Section 3.1 Server Identity).
Note:

When registering a plug-in, it's highly recommended to provide SSL certificates of the plug-in servers in addition to the thumbprints of the SSL certificates of the plug-in servers. Performing a full SSL certificate check during SSL handshake is more secure than performing an SSL certificate thumbprint check. Furthermore, in future vSphere releases, support for SSL certificate thumbprints will be dropped and full SSL certificates will be required.

In addition to the server property, the Extension record contains a client property, which is an array of ClientInfo objects. When you register the plug-in, you use the first element of this array as a descriptor for the plug-in as a whole. Three properties of the descriptor must be set in specific ways:
type
Must contain the value 'vsphere-client-remote'
url
Must contain URL of the plug-in manifest file, which must match the url property in the first ServerInfo record.
version
Must contain a developer-assigned version string, which distinguishes a new plug-in version from a new plug-in instance of the same version. The version string must be an integer or a series of dot-separated integers: n[.n[.n[.n]]]
The following illustration shows some of the basic structure of the Extension record used to register a plug-in.
Figure 1. Plug-in Registration Data
This diagram shows a breakdown of parts of the plug-in registration record.

For information about how to register auxiliary plug-in servers by using the registration tool in the SDK, see vSphere Client Plug-in Registration Tool.