source (what to collect on the device) and a destination
(where it goes in your bucket) — and belongs to an upload collection that gives its data
stream a stable identity. Rules are created by defining them as rule files and
releasing them via the CLI.
Properties
A hash of the rule’s resolved definition — its collection, source, and destination.
Upload rules are deduplicated by digest within their collection: pushing a rule
identical to an existing one returns the existing rule instead of a duplicate.Example:
sha256:1234567890Where uploaded files are uploaded to. See Destinations.
The upload collection to which the
rule belongs.Examples:
Robot Logs, Crash Reports, Camera FootageFile format
Each rule is defined as a single YAML file in your Git repository:collection_slug and the bucket by
name (destination.bucket).
See sources and destinations for details on each field.
Sources
A rule’ssource declares what to collect on the device: which files to match, and
when a matching file is considered finished and eligible for upload.
An absolute glob pattern that selects the files to upload.Must satisfy the following criteria:
- Absolute — it starts with
/ - At most 1024 bytes, with no control characters
- No
..segments, and no empty segments (//or a trailing/)
/var/log/robot/*.logHow long, in seconds, a matching file’s size and modification time must stay
unchanged (quiescent) before it is considered stable and eligible for upload.
See completion detection.
Destinations
A rule’sdestination declares where which registered bucket to write to, and the object path within it.
Name of the registered bucket this rule uploads to.Example:
my-uploads-bucketThe template which defines the object path to which the uploaded file is written.The following variables are supported, which are filled in when each upload’s
object key is rendered:
When the device deletes the local source file after collecting it.
never(default) — keep the local file in place; you manage local retention yourself.after_upload— delete the local file once the upload is durably confirmed.
Immutability
Upload rules are immutable. A rule is created once, shipped to devices as part of a release, and never edited in place. To change what is collected, you must create a new rule, release it, and deploy it to your devices.Git provenance
Rules are defined as YAML files in your Git repository and created by releasing them via the CLI. Each rule records the Git commits it was released from — the commit itself and the rule file’s path relative to the repository root — so any rule in Miru can be traced back to the exact lines of YAML that defined it.Create an upload rule
Upload rules must be created as part of a release. Visit the define releases page to learn how to create upload rules and releases.View an upload rule
To view an upload rule in Miru, navigate to the Releases page, and click into the release that contains the upload rule you want to view.



