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.
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.
- 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, theuri
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).
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.
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 firstServerInfo
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]]]
![This diagram shows a breakdown of parts of the plug-in registration record.](images/GUID-A240FBAF-2A9D-4302-B4FC-324A7BC0B527-high.png)
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.