Welcome to the new Golem Cloud Docs! 👋
Documentation
Application Manifest

Golem Application Manifest Reference

JSON schema

For the application manifest format we also publish JSON schemas. The current version (1.1.1) is available here (opens in a new tab).

The JSON schema is intended to be used with editors and IDEs, to help with base validation and code completion.

Use the following YAML comments at the start of your golem.yaml documents to enable schema support:

# $schema: https://schema.golem.cloud/app/golem/1.1.1/golem.schema.json

Note that on top of the above schema there are other checks performed by golem-cli, see the field reference below for details.

Loading of Application Manifest documents

The Golem CLI commands that use Application Manifest start by searching for golem.yaml documents in the current and the parent directories. Once the top level manifest document is found, more manifests are searched based on the includes fields.

After resolving relative paths in the documents they are merged, then component selection happens: this can be either explicit, by using --component-name CLI flags, or implicit, in which case only components defined in the directory - including subdirectories - from where the Golem CLI was executed are used.

Application Manifest documents can also be explicitly passed to the CLI, using the --app flag. Note that when using explicit documents the includes field is not used, it is expected that all relevant documents are provided for the CLI.

Build steps performed by the App Build command

The golem-cli app build command can be used to create Golem components. The command relies on build steps implemented partially in golem-cli and partially defined by the component specific build properties.

There are three main build steps.

gen-rpc:

componentize:

Builds the component using steps defined in components.<component-name>.build. The final binary should be created at components.<component-name>.componentWasm.

Usually the steps involve binding generation from

link-rpc:

Links the componentized WASM binary with required client components. For static-wasm-rpc this means the client components generated during gen-rpc, for wasm-rpc these will be skipped, as the clients are generated dynamically on the server-side.

By default, all the above three steps are executed when using golem-cli app build, but they can be selected by using the --step flag. This is intended to be used for more complex setups, when one would like to integrate golem-cli app build into another build tool.

Template variables and functions

The Application Manifest has some fields which are used as templates, these fields are marked as Templated in the field reference below. The templates are using minijinja (opens in a new tab), which is a minimal templating engine based on Jinja2 syntax.

Available template variables:

  • component_name: contains the current component name in which the template is used

Available naming related string transforming functions:

  • to_snake_case
  • to_kebab_case
  • to_lower_camel_case
  • to_pascal_case
  • to_shouty_kebab_case
  • to_shouty_snake_case
  • to_snake_case
  • to_title_case
  • to_train_case
  • to_upper_camel_case
Example usage:
build: tool-name build {{ component_name | to_snake_case }}.wasm

Field reference

includes
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of glob patterns that are used for adding search patterns for other Application Manifests when using auto discovery of them. The patterns are relative to the manifest document in which they are defined.

The default search pattern is **/golem.yaml, which searches for golem.yaml documents in every subdirectory recursively. Templates and examples provided by Golem usually use more specific search patterns to make the lookups more efficient.

The includes fields can be defined in one manifest only, usually in the project root directory. Defining it multiple times results in validation error.

Example usage:
includes:
- components-dir/*/golem.yaml
- custom-templates/golem-*.yaml
tempDir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional path that overrides the default path of the default temporary directory (golem-temp) which is used for storing various intermediate artifacts.

The path is relative to the manifest document in which they are defined.

Example usage:
tempDir: target/golem-temp
witDeps
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of paths of directories where WIT dependency packages can be stored. The paths are relative to the manifest document in which they are defined.

During component WIT generation these paths are checked for resolving missing dependencies. It is intended to be used for eliminating duplication of common dependencies and interfaces.

The witDeps fields can be defined in one manifest only, usually in the project root directory. Defining it multiple times results in validation error.

Example usage:
witDeps:
- wit-common/deps
components
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional map of Golem components indexed by component-name-s used for defining components.

The components field can be defined in multiple manifest documents, but the used component-name-s must be unique across all the used manifest documents. Using the same component-name more then once results in validation error.

Example usage:
components:
  pack-ns:component-name:
    sourceWit: # ...
    # ...
  pack:comp-b:
    sourceWit: # ...
    # ...
components.<component-name>.template
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional template name which will be used for creating the component fields.

The template name must be one of that are defined in templates.

See templates and Template variable and functions for defining templates.

components.<component-name>.componentType
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional string enum of component types, accepted values:

  • durable(default value)
    available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0
  • ephemeral
    available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

See Ephemeral vs Durable Workers for more information about component types.

Example usage:
components:
  pack-ns:component-name:
    # ...
    componentType: durable
  pack-ns:component-name:
    # ...
    componentType: ephemeral
components.<component-name>.files
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of files entries, which can be used for defining the Initial File System for the component.

Example usage:
components:
  pack-ns:component-name:
    # ...
    files:
    - sourcePath: ./files/foo.txt
      targetPath: /files/foo.txt
      permissions: read-only
    - sourcePath: ./files/bar.txt
      targetPath: /files/bar.txt
      permissions: read-write
components.<component-name>.files[*].sourcePath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required source path of the file to be added to the Initial File System. The path can be a file path relative to the manifest document or an URL.

components.<component-name>.files[*].targetPath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required target path of the file in the Initial File System. The path must be an absolute path.

components.<component-name>.files[*].permissions
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional string enum which controls file permissions. Accepted values:

  • read-only(default value)
    available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0
  • read-write
    available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0
components.<component-name>.sourceWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required directory path for the user defined component WIT directory.

The path is relative to the manifest document in which the field is defined.

The WIT directory can omit the deps folder if the required dependencies are available in some of the folders defined in witDeps.

Example usage:
components:
  pack-ns:component-name:
    # ...
    sourceWit: wit
components.<component-name>.generatedWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required directory path for the generated WIT directory created by the golem tooling, which handles exported interface extraction and includes resolved package and client dependencies.

This directory is intended to be used as source for binding generation.

The path is relative to the manifest document in which the field is defined.

This folder is usually added to .gitignore, as it is generated as part of build.

Example usage:
components:
  pack-ns:component-name:
    # ...
    generatedWit: wit-generated
components.<component-name>.componentWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required file path which should point to the built component WASM file before linking.

The path is relative to the manifest document in which the field is defined.

This file is usually added to .gitignore, as it is created as part of build.

Example usage:
components:
  pack-ns:component-name:
    # ...
    componentWasm: build/component.wasm
components.<component-name>.linkedWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional file path which should point to the built component WASM file after linking.

Defaults to golem-temp/linked-wasm/component-name.wasm, see tempDir.

The path is relative to the manifest document in which the field is defined.

This file is usually added to .gitignore, as it is created as part of build.

Example usage:
components:
  pack-ns:component-name:
    # ...
    linkedWasm: golem-temp/component/component.wasm
components.<component-name>.build
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of build commands that creates components.<component-name>.componentWasm.

Example usage:
components:
  pack-ns:component-name:
    build:
    - command: bindgen-tool wit-generated
    - command: build-tool wit-generated component.wasm
components.<component-name>.build[*].command
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required external command that will be used as a build step for creating components.<component-name>.componentWasm.

components.<component-name>.build[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional directory path which will be used as working directory when executing components.<component-name>.build[*].command.

The path is relative to the manifest document, and defaults to ..

components.<component-name>.build[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of directory paths which will be deleted before executing the command.

The path is relative to components.<component-name>.build[*].dir.

The rmdirs field is useful when a binding generator does not automatically clean stale bindings.

Directories are not removed if the command is skipped because of up-to-date checks, see components.<component-name>.build[*].sources and components.<component-name>.build[*].targets.

Directories are removed before executing components.<component-name>.build[*].mkdirs.

components.<component-name>.build[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of directory paths which will be created before executing the command if they do not exists.

The path is relative to components.<component-name>.build[*].dir.

The mkdirs field is useful when a build of binding generator tool does not automatically create required nested folders.

Directories are not created if the command is skipped because of up-to-date checks, see components.<component-name>.build[*].sources and components.<component-name>.build[*].targets.

Directories are created after executing components.<component-name>.build[*].rmdirs.

components.<component-name>.build[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of paths and globs which are used as sources for performing up-to-date checks.

If defined then components.<component-name>.build[*].targets also have to be used.

The up-to-date check

Example usage:
components:
  pack-ns:component-name:
    # ...
    build:
    - command: build-tool src-dir out.wasm
      sources:
      - src-dir/*
      targets:
      - out.wasm
components.<component-name>.build[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional list of paths and globs which are used as targets for performing up-to-date checks.

If defined then components.<component-name>.build[*].sources also have to be used.

See components.<component-name>.build[*].sources for up-to-date check details.

components.<component-name>.customCommands
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional map of component specific external commands, which are useful for defining e.g. one time installation or update related commands for the component.

The commands can be executed using:

golem-cli app command-name

Multiple components can use the same command-name, the above command will execute all matching commands in this case, both component specific and project ones.

For defining project level custom commands see customCommands.

The following command names cannot be used, as they are used by golem-cli app itself:

  • build
  • clean
Example usage:
components:
  pack-ns:component-name:
    # ...
    customCommands:
      npm-install:
      - command: npm install
components.<component-name>.customCommands.<command-name>[*].dir
components.<component-name>.customCommands.<command-name>[*].rmdirs
components.<component-name>.customCommands.<command-name>[*].mkdirs
components.<component-name>.customCommands.<command-name>[*].mkdirs
components.<component-name>.customCommands.<command-name>[*].sources
components.<component-name>.customCommands.<command-name>[*].targets
components.<component-name>.clean
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Component specific clean.

components.<component-name>.profiles
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional map of profiles, which can be used to provide multiple build profiles for a component, typically used for debug and release configurations.

A profile contains the same fields as a component, expect for defaultProfile and profile itself.

When profiles are defined for a component:

When building, by default golem-cli will use defaultProfile, unless a specific profile is requested and_ the component has a matching profile. E.g. the following command:

golem-cli app --build-profile release build
  • will build components that have no profiles by using the non-profile component fields
  • will use the release profile for components that are using profiles and have a profile named release
  • will use the defaultProfile for components that using profiles, but do not have a profile named release
Example usage:
components:
  pack-ns:component-name:
    profiles:
      debug:
        build:
        - command: build-tool --debug out.wasm
      release:
        build:
        - command: build-tool --release out.wasm
    defaultProfile: release
components.<component-name>.defaultProfile
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional profile name that defines which profile should be used.

It must be defined when using components.<component-name>.profiles, and must be one of the profile names defined there.

components.<component-name>.profiles.<profile-name>.componentType
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.componentType.

components.<component-name>.profiles.<profile-name>.files
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.files.

components.<component-name>.profiles.<profile-name>.files[*].sourcePath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.files[*].sourcePath.

components.<component-name>.profiles.<profile-name>.files[*].targetPath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.files[*].targetPath.

components.<component-name>.profiles.<profile-name>.files[*].permissions
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.files[*].permissions.

components.<component-name>.profiles.<profile-name>.sourceWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.sourceWit.

components.<component-name>.profiles.<profile-name>.generatedWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.generatedWit.

components.<component-name>.profiles.<profile-name>.componentWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.componentWasm.

components.<component-name>.profiles.<profile-name>.linkedWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.linkedWasm.

components.<component-name>.profiles.<profile-name>.build
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build.

components.<component-name>.profiles.<profile-name>.build[*].command
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].command.

components.<component-name>.profiles.<profile-name>.build[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].dir.

components.<component-name>.profiles.<profile-name>.build[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].rmdirs.

components.<component-name>.profiles.<profile-name>.build[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].mkdirs.

components.<component-name>.profiles.<profile-name>.build[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].sources.

components.<component-name>.profiles.<profile-name>.build[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.build[*].targets.

components.<component-name>.profiles.<profile-name>.customCommands
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].dir.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].rmdirs.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].mkdirs.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].mkdirs.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].sources.

components.<component-name>.profiles.<profile-name>.customCommands.<command-name>[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.customCommands.<command-name>[*].targets.

components.<component-name>.profiles.<profile-name>.clean
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Profile specific components.<component-name>.clean.

dependencies
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional map of list of component dependencies, which can be used for defining WASM RPC connections between components.

Example usage:
components:
  pack-ns:component-a:
    # ...
  pack-ns:component-b:
    # ...
  pack-ns:component-c:
  # ...
dependencies:
  pack-ns:component-a:
  - target: pack-ns:component-b
    type: wasm-rpc
  - target: pack-ns:component-c
    type: wasm-rpc
  pack-ns:component-b:
  - target: pack-ns:component-a
    type: wasm-rpc
  - target: pack-ns:component-b
    type: wasm-rpc
dependencies.<component-name>[*].type
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required string enum, accepted values:

  • wasm-rpc
    available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

    Dynamic WASM RPC linking. The preferred method for linking.

    With this dependency type the linking happens on servers side, so there is no need for generating and creating WAM RPC clients.

  • static-wasm-rpc
    available sinceJSON Schema:1.1.2|OSS CLI: 1.1.12|Cloud CLI: 1.1.2

    Static WASM RPC linking.

    With this dependency type the linking happens locally, so it requires Rust tooling.

dependencies.<component-name>[*].target
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Required component-name, which defines the target of the dependency.

Must be a defined component name.

clean
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional list of paths which are added as targets to the golem-cli app clean command.

The paths are relative to the manifest document.

The clean command deletes the following paths:

customCommands
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional map of custom external commands, which are useful for defining e.g. one time installation or update related project commands.

The commands can be executed using:

golem-cli app command-name

Components specific custom commands can use the same command-name, the above command will execute all matching commands in this case, both component specific and project ones.

For defining component specific custom commands see components.<component-name>.customCommands.

The following command names cannot be used, as they are used by golem-cli app itself:

  • build
  • clean
Example usage:
customCommands:
  npm-install:
  - command: npm install
customCommands.<command-name>[*].dir
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional directory path which will be used as working directory when executing customCommands.<command-name>[*].command.

The path is relative to the manifest document, and defaults to ..

customCommands.<command-name>[*].rmdirs
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional list of directory paths which will be deleted before executing the command.

The path is relative to customCommands.<command-name>[*].dir.

The rmdirs field is useful when a binding generator does not automatically clean stale bindings.

Directories are not removed if the command is skipped because of up-to-date checks, see customCommands.<command-name>[*].sources and customCommands.<command-name>[*].targets.

Directories are removed before executing customCommands.<command-name>[*].mkdirs.

customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional list of directory paths which will be created before executing the command if they do not exists.

The path is relative to customCommands.<command-name>[*].dir.

The mkdirs field is useful when a build of binding generator tool does not automatically create required nested folders.

Directories are not created if the command is skipped because of up-to-date checks, see customCommands.<command-name>[*].sources and customCommands.<command-name>[*].targets.

Directories are created after executing customCommands.<command-name>[*].rmdirs.

customCommands.<command-name>[*].sources
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional list of paths and globs which are used as sources for performing up-to-date checks.

If defined then customCommands.<command-name>[*].targets also have to be used.

The up-to-date check

customCommands.<command-name>[*].targets
available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

Optional list of paths and globs which are used as targets for performing up-to-date checks.

If defined then customCommands.<command-name>[*].sources also have to be used.

See customCommands.<command-name>[*].sources for up-to-date check details.

templates
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Optional map of named templates, which can be used in components.<component-name>.template.

Templates help in extracting common build patterns and reuse them for multiple components.

The templates field can be defined in multiple application manifest documents, but the template names must be unique.

See Template variable and functions for more information about templating.

Example usage:
templates:
my-template:
sourceWit: wit
componentWasm: build/{{component_name | to_snake_case}}
# ...
my-template-with-profiles:
profiles:
debug:
# ...
release:
# ...
components:
pack-ns:component-a:
template: my-template
pack-ns:component-b:
template: my-template
sourceWit: custom-wit # override
pack-ns:component-c:
template: my-template-with-profiles
profiles:
debug:
sourceWit: custom-wit # override
templates.<template-name>.componentType
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.componentType.

templates.<template-name>.files
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.files.

templates.<template-name>.files[*].sourcePath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.files[*].sourcePath.

templates.<template-name>.files[*].targetPath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.files[*].targetPath.

templates.<template-name>.files[*].permissions
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.files[*].permissions.

templates.<template-name>.sourceWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.sourceWit.

templates.<template-name>.generatedWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.generatedWit.

templates.<template-name>.componentWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.componentWasm.

templates.<template-name>.linkedWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.linkedWasm.

templates.<template-name>.build
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build.

templates.<template-name>.build[*].command
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].command.

templates.<template-name>.build[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].dir.

templates.<template-name>.build[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].rmdirs.

templates.<template-name>.build[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].mkdirs.

templates.<template-name>.build[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].sources.

templates.<template-name>.build[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.build[*].targets.

templates.<template-name>.customCommands
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.

templates.<template-name>.customCommands.<command-name>[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].dir.

templates.<template-name>.customCommands.<command-name>[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].rmdirs.

templates.<template-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].mkdirs.

templates.<template-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].mkdirs.

templates.<template-name>.customCommands.<command-name>[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].sources.

templates.<template-name>.customCommands.<command-name>[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.customCommands.<command-name>[*].targets.

templates.<template-name>.clean
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.clean.

templates.<template-name>.profiles
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.profiles.

templates.<template-name>.profiles.<profile-name>
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated components.<component-name>.profiles.<profile-name>.

templates.<template-name>.profiles.<profile-name>.componentType
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.componentType.

templates.<template-name>.profiles.<profile-name>.files
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.files.

templates.<template-name>.profiles.<profile-name>.files[*].sourcePath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.files[*].sourcePath.

templates.<template-name>.profiles.<profile-name>.files[*].targetPath
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.files[*].targetPath.

templates.<template-name>.profiles.<profile-name>.files[*].permissions
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.files[*].permissions.

templates.<template-name>.profiles.<profile-name>.sourceWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.sourceWit.

templates.<template-name>.profiles.<profile-name>.generatedWit
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.generatedWit.

templates.<template-name>.profiles.<profile-name>.componentWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.componentWasm.

templates.<template-name>.profiles.<profile-name>.linkedWasm
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.linkedWasm.

templates.<template-name>.profiles.<profile-name>.build
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build.

templates.<template-name>.profiles.<profile-name>.build[*].command
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].command.

templates.<template-name>.profiles.<profile-name>.build[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].dir.

templates.<template-name>.profiles.<profile-name>.build[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].rmdirs.

templates.<template-name>.profiles.<profile-name>.build[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].mkdirs.

templates.<template-name>.profiles.<profile-name>.build[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].sources.

templates.<template-name>.profiles.<profile-name>.build[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.build[*].targets.

templates.<template-name>.profiles.<profile-name>.customCommands
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].dir
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].dir.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].rmdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].rmdirs.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].mkdirs.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].mkdirs
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].mkdirs.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].sources
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].sources.

templates.<template-name>.profiles.<profile-name>.customCommands.<command-name>[*].targets
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.customCommands.<command-name>[*].targets.

templates.<template-name>.profiles.<profile-name>.clean
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

Templated and profile specific components.<component-name>.clean.

templates.<template-name>.defaultProfile
available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

String which selects the default profile for the template. Required if profiles are used. Must be one of the defined profile names in templates.<template-name>.profiles.

Example usage:
templates:
  rust:
    profiles:
      debug:
        # ...
      release:
        # ...
    defaultProfile: debug

Fields and changes by releases

available sinceJSON Schema:1.1.0|OSS CLI: 1.1.0|Cloud CLI: 1.1.0

available sinceJSON Schema:1.1.1|OSS CLI: 1.1.12|Cloud CLI: 1.1.1

available sinceJSON Schema:1.1.2|OSS CLI: 1.1.12|Cloud CLI: 1.1.2
added enum value static-wasm-rpc todependencies.<component-name>[*].type