Bundle Configuration
The massdriver.yaml file contains metadata for publishing a Massdriver bundle to the Massdriver package manager as well as configuration for controlling the UI.
massdriver.yaml Properties:
| Type | Description | Required | |
|---|---|---|---|
| name | string | The name of the bundle. This will be prefixed with your organization name upon publishing. | ✓ Yes |
| schema | string | The JSON Schema used to define the bundle. | ✓ Yes |
| description | string | A description of the bundles. | ✓ Yes |
| source_url | string | Link to the bundle source code. | ✓ Yes |
| access | string | The access level of the bundle. Private will only be available to the organization it is published under. | ✓ Yes |
| type | string | The type of bundle: infrastructure (legacy term: bundle) or application. | ✓ Yes |
| params | object | draft-07 JSON Schema describing input parameters for the bundle. | ✓ Yes |
| connections | object | draft-07 JSON Schema describing input connections for this bundle. Determines which artifacts from other bundles this bundle depends on. | ✓ Yes |
| artifacts | object | draft-07 JSON Schema describing cloud resources created by this bundle that are available to be used as input connections to other bundles. See: https://github.com/massdriver-cloud/artifact-definitions | ✓ Yes |
| ui | object | RJSF UI Schema for advanced control over the UI. See https://react-jsonschema-form.readthedocs.io/en/docs/api-reference/uiSchema/#uischema | ✓ Yes |
Additional properties are not allowed.
Bundle Name
The name of the bundle. This will be prefixed with your organization name upon publishing.
- Type:
string - Required: No
- Pattern:
^[a-z][a-z0-9-]+[a-z0-9]$ - Minimum Length
: >= 3 - Maximum Length
: <= 53
Bundle Schema
The JSON Schema used to define the bundle.
- Type:
string - Required: ✓ Yes
- Allowed values:
"draft-07"
Bundle Description
A description of the bundle.
- Type:
string - Required: ✓ Yes
- Minimum Length
: >= 10 - Maximum Length
: <= 1024
Bundle Ref
Link to the bundle source code.
Note: ref is a legacy term in Massdriver and will likely change in the future.
- Type:
string - Required: ✓ Yes
- Format: uri
Bundle Access
The access level of the bundle. Private bundles will only be accessible by the organization it is published under.
- Type:
string - Required: ✓ Yes
- Allowed values:
"public""private"
Bundle Type
The type of bundle: infrastructure (legacy term: bundle) or application.
- Type:
string - Required: ✓ Yes
- Allowed values:
"bundle""application"
Bundle Params
Input parameters for the bundle. These will be converted to input variables for your IaC module.
- Type:
any - Required: ✓ Yes
Massdriver Custom Annotations
Massdriver extends JSON Schema with custom annotations prefixed with $md. to provide platform-specific functionality in your params schema:
$md.immutable: Prevents modification of fields after initial provisioning (e.g., VPC CIDR blocks, database identifiers)$md.enum: Creates dynamic dropdown options from connected artifact data (e.g., select a subnet from a connected VPC)$md.copyable: Controls whether fields are copied when duplicating configuration between environments (useful for excluding secrets)
See the Massdriver Annotations Reference for complete documentation, use cases, and examples.
Bundle Connections
Input connections for this bundle. Determines which artifacts from other bundles this bundle depends on. These will be converted to input variables for your IaC module.
- Type:
any - Required: ✓ Yes
Bundle Artifacts
Cloud resources created by this bundle that are available to be used as input connections to other bundles. See: https://github.com/massdriver-cloud/artifact-definitions
- Type:
any - Required: ✓ Yes
Bundle UI
RJSF UI Schema for advanced control over the UI. See https://react-jsonschema-form.readthedocs.io/en/docs/api-reference/uiSchema/#uischema
- Type:
object - Required: ✓ Yes