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

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

Table 1. meta.yml

apiVersion

API version (should be v2)

category

Available : Language, Other

description

Description (a phrase)

displayName

Display name

firstPublicationDate

Date in the form "YYYY-MM-DD" Example: "2019-12-02"

icon

URL of a svg icon

name

Name (no spaces allowed)

publisher

Name of the publisher

repository

URL of the source repository

title

Title (long)

type

Che Plugin, VS Code extension

version

Version information, for example: 7.5.1

spec

Specifications (see underneath)

Table 2. spec attributes

endpoints

Plug-in endpoints

containers

Sidecar containers for the plug-in. Che Plugin and VS Code extension supports only one container

initContainers

Sidecar init containers for the plug-in

workspaceEnv

Environment variables for the workspace

extensions

Optional attribute required for VS Code and Che-Theia plug-ins. A list of URLs to plug-in artefacts, such as .vsix or .theia files

Table 3. spec.containers. Notice: spec.initContainers has absolutely the same container definition.

name

Sidecar container name

image

Absolute or relative container image URL

memoryLimit

Kubernetes or OpenShift memory limit string, for example 512Mi

memoryRequest

Kubernetes or OpenShift memory request string, for example 512Mi

cpuLimit

Kubernetes or OpenShift CPU limit string, for example 2500m

cpuRequest

Kubernetes or OpenShift CPU request string, for example 125m

env

List of environment variables to set in the sidecar

command

String array definition of the root process command in the container

args

String array arguments for the root process command in the container

volumes

Volumes required by the plug-in

ports

Ports exposed by the plug-in (on the container)

commands

Development commands available to the plug-in container

mountSources

Boolean flag to bound volume with source code /projects to the plug-in container

Table 4. spec.containers.env (and spec.initContainers.env) attributes. Notice: workspaceEnv has absolutely the same attributes

name

Environment variable name

value

Environment variable value

Table 5. spec.containers.volumes (and spec.initContainers.volumes) attributes

mountPath

Path to the volume in the container

name

Volume name

ephemeral

If true, the volume is ephemeral, otherwise the volume is persisted

Table 6. spec.containers.ports (and spec.initContainers.ports) attributes

exposedPort

Exposed port

Table 7. spec.containers.commands (and spec.initContainers.commands) attributes

name

Command name

workingDir

Command working directory

command

String array that defines the development command

Table 8. spec.endpoints attributes

name

Name (no spaces allowed)

public

true, false

targetPort

Target port

attributes

Endpoint attributes

Table 9. spec.endpoints.attributes attributes

protocol

Protocol, example: ws

type

ide, ide-dev

discoverable

true, false

secure

true, false. If true, then the endpoint is assumed to listen solely on 127.0.0.1 and is exposed using a JWT proxy

cookiesAuthEnabled

true, false

Example meta.yaml for a Che-Theia plug-in: the Che machine-exec Service
apiVersion: v2
category: Other
description: Che Plugin with che-machine-exec service to provide creation terminal or tasks for Eclipse Che workspace containers
displayName: Che machine-exec Service
firstPublicationDate: "2019-12-02"
icon: https://www.eclipse.org/che/images/logo-eclipseche.svg
name: che-machine-exec-plug-in
publisher: eclipse
repository: https://github.com/eclipse/che-machine-exec/
title: Che machine-exec Service Plugin
type: Che Plugin
version: 7.5.1
spec:
  endpoints:
   -  name: "che-machine-exec"
      public: true
      targetPort: 4444
      attributes:
        protocol: ws
        type: terminal
        discoverable: false
        secure: true
        cookiesAuthEnabled: true
  containers:
   - name: che-machine-exec
     image: "quay.io/eclipse/che-machine-exec:7.5.1"
     ports:
       - exposedPort: 4444
Example meta.yaml for a VisualStudio Code extension: the AsciiDoc support extension
apiVersion: v2
category: Language
description: This extension provides a live preview, syntax highlighting and snippets for the AsciiDoc format using Asciidoctor flavor
displayName: AsciiDoc support
firstPublicationDate: "2019-12-02"
icon: https://www.eclipse.org/che/images/logo-eclipseche.svg
name: vscode-asciidoctor
publisher: joaompinto
repository: https://github.com/asciidoctor/asciidoctor-vscode
title: AsciiDoctor Plug-in
type: VS Code extension
version: 2.7.7
spec:
  extensions:
  - https://github.com/asciidoctor/asciidoctor-vscode/releases/download/v2.7.7/asciidoctor-vscode-2.7.7.vsix