Skip to main content
An upload bundle is a group of related uploads from a single device, such as every file from one recording or run.

Properties

Device
The device whose uploads the bundle groups.
Upload Collection
The upload collection whose uploads the bundle groups.
string[]
The capture keys from upload.bundle of the file rule that created the bundle.Capture keys do not affect membership, only captured values do. See Same capture values.Example: ["mission", "run"]
string[]
The captured values that identify the bundle.Together with the device and upload collection, these values are the bundle’s identity: no two bundles share all three. See Matching conditions.Example: ["mission_123", "run_03"]

Single file rule

Bundles are specified in a file rule’s upload.bundle field. Below is an example of a file rule that bundles files in the same {recording} folder:
Using this rule, all files in the run_42 folder are bundled together:
data
recordings
run_42
camera.mcap
metadata.yaml
run_43
camera.mcap
metadata.yaml
Files in another folder, such as run_43, land in a different bundle.

Multiple file rules

Sometimes you want to bundle files sourced from different file rules. In such cases, bundling is still possible. Consider the following two rules:
Using these rules, /data/calib/run_18/front.yaml and /data/images/run_18/front.png are bundled because they have the same capture values of run_18 and front.
data
calib
run_18
front.yaml
back.yaml
run_19
front.yaml
back.yaml
images
run_18
front.png
back.png
run_19
front.png
back.png
A different camera (run_18/back.yaml) or a later run (run_19/front.yaml) is placed into a different bundle.

Common patterns

Below are common patterns for specifying which files to bundle together.
Use when each group is already a directory. Capture the folder name and match the files inside it.
Every file in drive_07/ shares a bundle. drive_08/ is a different bundle:
data
bags
drive_07
camera.mcap
metadata.yaml
drive_08
camera.mcap
metadata.yaml

Matching conditions

Specifying captures to bundle files is a powerful way to group related files together. Below is the full list of conditions that determine if two uploads are placed into the same bundle.

Same device

Bundles never span devices. Identical capture values from two devices are always placed into different bundles.

Same upload collection

Bundles never span upload collections. Identical capture values from the same device but specifying a different upload collection are always placed into different bundles.

Same capture values

Bundles are matched by their capture values; the order of capture values does matter. Notably, capture keys are ignored.

Examples

To illustrate capture matching conditions, consider the following file rules:
Below are some examples of captured values and whether they would join the same bundle: Bundled
Explanation: Both uploads captured ["01", "02"] in that order.
Explanation: Capture keys are ignored. Both uploads captured ["01", "02"] in that order.
Not bundled
Explanation: Both uploads captured 01 and 02, but in opposite order.
Explanation: The first capture value is 03 vs 01.
Explanation: One upload captured two values and the other captured one.
Last modified on October 19, 2026