Advanced Project Configuration
This page provides a comprehensive breakdown of the build.yaml file — the manifest that defines how your application is built by Atym. It covers required and optional fields, usage patterns, and how to make the most of Atym's flexible build system. If you're looking to customize environment variables, permissions, or multi-binary layouts, this guide is for you.
Understanding the Structure
At a high level, build.yaml is composed of three main sections:
- version: The schema version for the file
- name: A short identifier used to name your resulting container
- binaries: A list of WebAssembly modules (
.wasmfiles) to include - config (optional): Runtime-level configuration like environment variables and permissions
Sample:
version: '1'
name: your-project
binaries:
- path: build/your-project.wasm
config:
permissions:
- ocre_messaging
- networking
entrypoint: main
heapSize: 12345
stackSize: 12345
Required Fields
| Parameter | Description | Accepted Values |
|---|---|---|
version | Schema version for the build file | Currently must be '1' |
name | The name of your container. Must follow OCI container naming conventions | String following OCI naming conventions |
binaries | List of WebAssembly modules to include | Array of binary objects |
binaries[].path | Path to WebAssembly binary | Relative path to .wasm file |
Optional Fields (config:)
| Parameter | Description | Accepted Values |
|---|---|---|
permissions | Runtime capabilities granted to container | See Permissions Reference |
entrypoint | Entry function name for the container | String (function name) |
heapSize | Memory allocated for dynamic memory allocation | Integer (bytes) |
stackSize | Memory allocated for function call stack | Integer (bytes) |