Define the schemas
Releases are defined by the config schemas they contain. The getting-started repository contains two sets of schemas for each of the supported schema languages:- Empty schemas - regard all config instances as valid
- Strict schemas - constrain the valid fields, types, and values for instances of the config type they belong to
- JSON Schema
- CUE
Empty SchemasStrict Schemas
Schema annotations
Each of the above schema examples are annotated with thex-miru-config-type and x-miru-instance-filepath fields. These annotations are crucial metadata that Miru uses to process the schema and deploy config instances to the correct location on the device.
required
The config type is a required annotation that identifies the config type to which a schema belongs. Below is the syntax for annotating a schema with a config type slug.If the provided config type slug does not yet exist, it is automatically created. To edit a config type after creation, visit the config types documentation.Examples:
mobility, communication, perceptionThe instance file path is the absolute file system path where config instances for this schema are written on the device.Instance file paths control the type of file that config instances are deployed as. Currently, JSON (Examples:
.json) and YAML (.yaml, .yml) are supported.This annotation is optional and defaults to /srv/miru/configs/{config-type-slug}.json./srv/miru/configs/mobility.json/home/myapp/configs/communication.yaml/var/lib/myapp/configs/safety.yaml
Set up the CLI
Next, we’ll install the CLI—the primary method of creating releases in Miru. Creating releases via the CLI is a deliberate design choice. We believe a release’s schemas should live in a Git repository. This allows them to be versioned alongside the code that uses them and encourages better software development practices. While this tutorial covers creating releases on your local machine, the CLI can also be used to create releases in a CI pipeline. Install The CLI is only available on macOS and Linux. Windows is not supported.- macOS
- Linux
Install via Homebrew.
If you are not seeing the latest CLI version, refresh Homebrew with
brew update.login command.

Create a release
With the CLI setup, we are ready to create a release in Miru. Navigate to the root of the getting-started repository and create the release with a schema set of your choice.- JSON Schema
- CUE
Git metadata is pulled from the local Git repository that the schemas are defined in.





