Schema URL

Type: object

Devfile describes the structure of a cloud-native devworkspace and development environment.

Properties

schemaVersion string required

Devfile schema version

pattern=^([2-9])\.([0-9]+)\.([0-9]+)(\-[0-9a-z-]+(\.[0-9a-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
attributes object

Map of implementation-dependant free-form YAML attributes.

commands object[]

Predefined, ready-to-use, devworkspace-related commands

components object[]

List of the devworkspace components, such as editor and plugins, user-provided containers, or other types of components

events object

Bindings of commands to events. Each command is referred-to by its name.

4 nested properties
postStart string[]

IDs of commands that should be executed after the devworkspace is completely started. In the case of Che-Theia, these commands should be executed after all plugins and extensions have started, including project cloning. This means that those commands are not triggered until the user opens the IDE in his browser.

postStop string[]

IDs of commands that should be executed after stopping the devworkspace.

preStart string[]

IDs of commands that should be executed before the devworkspace start. Kubernetes-wise, these commands would typically be executed in init containers of the devworkspace POD.

preStop string[]

IDs of commands that should be executed before stopping the devworkspace.

metadata object

Optional metadata

14 nested properties
architectures string[]

Optional list of processor architectures that the devfile supports, empty list suggests that the devfile can be used on any architecture

uniqueItems=true
attributes object

Map of implementation-dependant free-form YAML attributes. Deprecated, use the top-level attributes field instead.

description string

Optional devfile description

displayName string

Optional devfile display name

globalMemoryLimit string

Optional devfile global memory limit

icon string

Optional devfile icon, can be a URI or a relative path in the project

language string

Optional devfile language

name string

Optional devfile name

projectType string

Optional devfile project type

provider string

Optional devfile provider information

supportUrl string

Optional link to a page that provides support information

tags string[]

Optional devfile tags

version string

Optional semver-compatible version

pattern=^([0-9]+)\.([0-9]+)\.([0-9]+)(\-[0-9a-z-]+(\.[0-9a-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
website string

Optional devfile website

parent object

Parent devworkspace template

One of: variant, variant, variant
11 nested properties
attributes object

Overrides of attributes encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.

commands object[]

Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.

components object[]

Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.

id string

Id in a registry that contains a Devfile yaml file

kubernetes object

Reference to a Kubernetes CRD of type DevWorkspaceTemplate

2 nested properties
name string required
namespace string
projects object[]

Overrides of projects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.

registryUrl string

Registry URL to pull the parent devfile from when using id in the parent reference. To ensure the parent devfile gets resolved consistently in different environments, it is recommended to always specify the registryUrl when id is used.

starterProjects object[]

Overrides of starterProjects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.

uri string

URI Reference of a parent devfile YAML file. It can be a full URL or a relative URI with the current devfile as the base URI.

variables Record<string, string>

Overrides of variables encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.

version string

Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. To specify version, id must be defined and used as the import reference source. version can be either a specific stack version, or latest. If no version specified, default version will be used.

pattern=^(latest)|(([1-9])\.([0-9]+)\.([0-9]+)(\-[0-9a-z-]+(\.[0-9a-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?)$
projects object[]

Projects worked on in the devworkspace, containing names and sources locations

starterProjects object[]

StarterProjects is a project that can be used as a starting point when bootstrapping new projects

variables Record<string, string>

Map of key-value variables used for string replacement in the devfile. Values can be referenced via {{variable-key}} to replace the corresponding value in string fields in the devfile. Replacement cannot be used for

  • schemaVersion, metadata, parent source

  • element identifiers, e.g. command id, component name, endpoint name, project name

  • references to identifiers, e.g. in events, a command's component, container's volume mount name

  • string enums, e.g. command group kind, endpoint exposure