Che-Theia plug-in metadata is information about individual plug-ins for the plug-in registry.

meta.yaml

The Che-Theia plug-in metadata is defined in a meta.yaml file for the specific plug-in.

Interface for a Che-Theia plug-in metadata object
{
    id: string;
    version: string;
    type: string;
    name: string;
        title: string;
    description: string;
    url: string;
}

The most important part of the object is the url, which defines the location of plug-in configuration. Typically, it is a tar archive with the plug-in meta.yaml file.

When adding a VS Code extension from the oficial marketplace using its ID, the url field should be replaced with an attributes section that would contain extension and container-image fields:

Interface for a VS Code plug-in metadata object
{
    id: string;
    version: string;
    type: string;
    name: string;
        title: string;
    description: string;
    Attributes: {
       extension: string;      (1)
       containerImage: string; (2)
    }
}
1 VS Code extension ID with a vscode:extension/ prefix
2 Points to the container image in which the extension runs. Use images based on eclipse/che-theia-endpoint-runtime to be able to host VS Code extensions or Che-Theia plug-ins.

che-plugin.yaml

The most detailed information about a plug-in is in the che-plugin.yaml file. For example:

che-plugin.yaml file for the che-editor-theia plug-in
version: 1.0.0
type: Che Editor
name: theia-ide
id: org.eclipse.che.editor.theia
title: Eclipse Theia for Eclipse Che
description: Eclipse Theia
icon: https://pbs.twimg.com/profile_images/929088242456190976/xjkS2L-0_400x400.jpg
endpoints:
 -  name: "theia"
    public: true
    targetPort: 3100
    attributes:
      protocol: http
      type: ide
      secure: true
      cookiesAuthEnabled: true
      discoverable: false
 -  name: "theia-dev"
    public: true
    targetPort: 3130
    attributes:
      protocol: http
      type: ide-dev
      discoverable: false
containers:
 - name: theia-ide
   image: eclipse/che-theia:0.3.18-nightly
   env:
       - name: THEIA_PLUGINS
         value: local-dir:///plugins
       - name: HOSTED_PLUGIN_HOSTNAME
         value: 0.0.0.0
       - name: HOSTED_PLUGIN_PORT
         value: 3130
   volumes:
       - mountPath: "/plugins"
         name: plugins
       - mountPath: "/projects"
         name: projects
   ports:
       - exposedPort: 3100
       - exposedPort: 3130
   memory-limit: "1536M"
   memoryLimit: "1536M"
che-plugin.yaml file for the che-machine-exec plug-in
endpoints:
 -  name: "che-machine-exec"
    public: true
    targetPort: 4444
    attributes:
      protocol: ws
      type: terminal
      discoverable: false
containers:
 - name: che-machine-exec
   image: eclipse/che-machine-exec
   ports:
     - exposedPort: 4444
editors:
   - id: org.eclipse.che.editor.theia