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-inversion: 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-inendpoints:
- 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