DataML
Examples and reference documentation for Data Management Language (DataML) artifacts.
WorkspaceML
2 items
ChannelML
Reference documentation for channel definition model.
DatasetML
5 items
DatastoreML
Reference documentation for data store definition model.
PipelineML
2 items
Deploy WorkspaceML
WorkspaceML configures the workspace you deploy to, rather than a resource within it. A deploy merges workspace.yml into the existing workspace: the provided properties are updated and those omitted are left unchanged - nothing resets to a default. The workspace name is set from the name property. app_properties are recomputed from the file, so removed keys are dropped.
Deploy workspace artifacts
Every other DataML artifact backs a corresponding resource that is created, updated or deleted by deploying a workspace.
A create, update or delete operates on the resource that the artifact is matched to by name (alias for a dataset) unique within the workspace. This identifier is derived from the artifact filepath, minus the extension (pipeline names are additionally slugified).
Create
When an artifact does not yet match a resource, deploying the workspace creates the corresponding resource from the artifact.
Update
When an artifact matches a resource, deploying the workspace updates the corresponding resource from the artifact.
In general, a property is applied as a replacement: a value you provide overwrites the existing one, and a property you omit resets to its default (null or empty collection).
For example, given the following existing pipeline resource
{
"dataComponents": ["tap-github", "target-snowflake"],
"script": "echo 'Hello world!'",
"timeout": 3600
}
backed by the following PipelineML artifact
data_components:
- tap-github
- target-snowflake
timeout: 3600
when deploying the workspace, the script is unset and the pipeline assumes default behaviour at runtime:
{
"dataComponents": ["tap-github", "target-snowflake"],
"timeout": 3600
}
A property holding a schemaless object, such as pipeline properties, is instead applied as a merge: because the object can hold any number of keys, the artifact updates only those provided and leaves the rest unchanged.
For example, given the following existing pipeline resource
{
"properties": {
"username": "example_user",
"password": "***",
"start_date": "2026-01-01"
}
}
backed by the following PipelineML artifact
properties:
username: another_example_user
start_date: 2026-01-01
when deploying the workspace, only the provided keys of properties are updated:
{
"properties": {
"username": "another_example_user",
"password": "***",
"start_date": "2026-01-01"
}
}
An explicit null mapping can also be used to unset a key within a schemaless object:
properties:
username: another_example_user
start_date: null
{
"properties": {
"username": "another_example_user",
"password": "***"
}
}
Delete
When an artifact that previously matched a resource has its filepath modified or is deleted, deploying the workspace deletes the corresponding resource. Modifying the filepath will also create a new resource under the new identifier.