Skip to main content

Project

A Project is a group of related Connections, Flows/Components, Profiles, Vaults, Automations and other code/configuration artifacts. Project files define the mapping of filesystem paths to different kinds of artifacts that the platform can access when running Flows for the Project.

Examples

project:
name: SimpleProject
description: A simple project with only a name and description.

Project

Below are the properties for the Project. Each property links to the specific details section further down in this page.

PropertyDefaultTypeRequiredDescription
projectYesProject options.

Property Details

ProjectOptions

Options that can be specified for a Project.

PropertyDefaultTypeRequiredDescription
pip_packagesarray[string]
NoPython PIP packages to install
parametersobject with property values of type None
NoDictionary of parameters to use for resource.
defaultsarray[None]
NoList of default configs with filters that can be applied to a resource config.
descriptionstring
NoBrief description of what the model does.
metadataNoMeta information of a resource. In most cases it doesn't affect the system behavior but may be helpful to analyze project resources.
namestringYesThe name of the model
versionstring
NoProject version.
connections['connections/']array[string]
NoList of Connection definition folders used in the Project.
flows['flows/']array[string]
NoList of Flow definition folders used in the Project.
profiles['profiles/']array[string]
NoList of Profile definition folders used in the Project.
sources['src/']array[string]
NoList of source definition folders used in the Project.
tests['tests/']array[string]
NoList of test definition folders used in the Project.
vaults['vaults/']array[string]
NoList of Vault definition folders used in the Project.
actions['actions/']array[string]
NoList of Action definition folders used in the Project.
automations['automations/']array[string]
NoList of Automation definition folders used in the Project.
sensors['sensors/']array[string]
NoList of Sensor definition folders used in the Project.
ssh_tunnels['ssh_tunnels/']array[string]
NoList of SSH tunnel definition folders used in the Project.
applications['applications/']array[string]
NoList of Application definition folders used in the Project.

ConfigFilter

Filter used to target configuration settings to a specific Flow and/or Component.

PropertyDefaultTypeRequiredDescription
kindstring ("Flow", "Component")YesResource kind to target with this configuration.
nameAny of:
  string
  array[string]
  array[None]
YesName of the resource to target with this configuration.
flow_nameAny of:
  string
  array[string]
  array[None]
NoName of the Flow to target with this configuration.
specAny of:
NoDictionary of parameters to use for the resource.

ComponentSpec

Specification for configuration applied to a component at runtime based on the config filter.

PropertyDefaultTypeRequiredDescription
skipboolean
NoBoolean flag indicating whether to skip processing for the Component or not.
retry_strategyNoRetry strategy configuration options for the Component if any exceptions are encountered.
data_maintenanceNoThe data maintenance configuration options for the Component.
data_plane  One of:
    SnowflakeDataPlane
    BigQueryDataPlane
    DuckdbDataPlane
    DatabricksDataPlane
NoData Plane-specific configuration options for Components.

FlowSpec

Specification for configuration applied to a Flow at runtime based on the config filter.

PropertyDefaultTypeRequiredDescription
data_planeNoThe data plane that will be used for the flow at runtime.
runnerRunnerConfig
NoRunner configuration.
component_concurrencyinteger
NoMaximum number of concurrent Components to run within this Flow.

DataPlane

The external warehouse where data is persisted throughout the Flow runs, and where primary computation on the data itself occurs.

PropertyDefaultTypeRequiredDescription
connection_namestring
No
metadata_storage_location_prefixstring
NoPrefix to prepend to the names of metadata tables created for this Flow. The prefix may include database/project/etc. and schema/dataset/etc where applicable. If not provided, metadata tables are stored alongside the output data tables per the Data Plane's Connection configuration.

RegexFilter

A filter used to target resources based on a regex pattern.

PropertyDefaultTypeRequiredDescription
regexstringYesThe regex to filter the resources.

RunnerConfig

Configuration for the flow runner

PropertyDefaultTypeRequiredDescription
sizeAny of:
  RuntimeSize
  CustomRuntimeSize
NoRuntime size configuration. Can be: (1) a tier name string (X-Small, Small, Medium, Large, X-Large), or (2) a CustomRuntimeSize object with tier-based or fully custom resources.

CustomRuntimeSize

Runtime size configuration with flexible resource specification. Supports two modes: 1. Tier-based: Specify a tier with optional resource overrides 2. Fully custom: Specify CPU directly with optional memory/disk Either 'tier' or 'cpu' must be provided (or both).

PropertyDefaultTypeRequiredDescription
tierRuntimeSize
NoBase size tier (X-Small, Small, Medium, Large, X-Large). Required unless 'cpu' is specified.
cpustring
NoCPU allocation in whole cores (e.g., '1', '4', '8'). Required unless 'tier' is specified.
memorystring
NoMemory allocation. Use 'high' for tier-based doubling, or specify exact value with unit suffix (e.g., '32Gi', '4G', '512Mi')
diskstring
NoDisk allocation with unit suffix (e.g., '100Gi', '1Ti', '500G')

RuntimeSize

Enumeration of standard runtime size tiers. Each tier corresponds to specific resource allocations (CPU, memory, disk).

No properties defined.

BigQueryDataPlane

PropertyDefaultTypeRequiredDescription
bigqueryYesBigQuery configuration options.

BigQueryDataPlaneOptions

PropertyDefaultTypeRequiredDescription
partition_byAny of:
NoPartition By clause for the table.
cluster_byarray[string]
NoClustering keys to be added to the table.

BigQueryRangePartitioning

PropertyDefaultTypeRequiredDescription
fieldstringYesField to partition by.
rangeYesRange partitioning options.

BigQueryTimePartitioning

PropertyDefaultTypeRequiredDescription
fieldstringYesField to partition by.
granularitystring ("DAY", "HOUR", "MONTH", "YEAR")YesGranularity of the time partitioning.

DatabricksDataPlane

PropertyDefaultTypeRequiredDescription
databrickscluster_by: null
pyspark_job_cluster_id: null
table_properties: null
NoDatabricks configuration options.

DatabricksDataPlaneOptions

PropertyDefaultTypeRequiredDescription
table_propertiesobject with property values of type string
NoTable properties to include when creating the data table. This setting is equivalent to the CREATE TABLE ... TBLPROPERTIES clause. Please refer to the Databricks documentation at https://docs.databricks.com/aws/en/delta/table-properties for available properties depending on your Data Plane.
pyspark_job_cluster_idstring
NoID of the compute cluster to use for PySpark jobs.
cluster_byarray[string]
NoClustering keys to be added to the table.

DuckdbDataPlane

PropertyDefaultTypeRequiredDescription
duckdbducklake_data_table_compaction:
  small_file_count_threshold: 50
  small_file_ratio_threshold: 0.25
  small_file_record_count_limit: 100000
ducklake_metadata_table_compaction:
  small_file_count_threshold: 10
  small_file_ratio_threshold: null
  small_file_record_count_limit: 10
NoDuckDB configuration options.

DuckDbDataPlaneOptions

PropertyDefaultTypeRequiredDescription
ducklake_metadata_table_compactionsmall_file_count_threshold: 10
small_file_ratio_threshold: null
small_file_record_count_limit: 10
DuckLakeTableCompactionSettingsNoSettings for compacting metadata tables. If present, metadata table compaction is enabled.
ducklake_data_table_compactionsmall_file_count_threshold: 50
small_file_ratio_threshold: 0.25
small_file_record_count_limit: 100000
DuckLakeTableCompactionSettingsNoSettings for compacting data tables. If present, data table compaction is enabled.

DuckLakeTableCompactionSettings

Settings for DuckLake table compaction.

PropertyDefaultTypeRequiredDescription
small_file_record_count_limit10integerNoFiles with fewer records than this limit are considered 'small'.
small_file_count_threshold10integerNoRun manual table compaction if the number of files with fewer than small_file_record_count_limit records exceeds this threshold.
small_file_ratio_thresholdnumber
NoPercentage (0.0-1.0) of small files relative to total files. If set, both absolute count AND ratio must pass for compaction to be triggered. If None, only absolute count check is performed.

FabricDataPlane

PropertyDefaultTypeRequiredDescription
fabricspark_session_config: null
NoFabric configuration options.

FabricDataPlaneOptions

PropertyDefaultTypeRequiredDescription
spark_session_configNoSpark session configuration.

RangeOptions

PropertyDefaultTypeRequiredDescription
startintegerYesStart of the range partitioning.
endintegerYesEnd of the range partitioning.
intervalintegerYesInterval of the range partitioning.

SnowflakeDataPlane

PropertyDefaultTypeRequiredDescription
snowflakeYesSnowflake configuration options.

SnowflakeDataPlaneOptions

PropertyDefaultTypeRequiredDescription
cluster_byarray[string]
NoClustering keys to be added to the table.

SynapseDataPlane

PropertyDefaultTypeRequiredDescription
synapsespark_session_config: null
NoSynapse configuration options.

SynapseDataPlaneOptions

PropertyDefaultTypeRequiredDescription
spark_session_configNoSpark session configuration.

LivySparkSessionConfig

PropertyDefaultTypeRequiredDescription
poolstring
NoPool to use for the Spark session.
driver_memorystring
NoMemory to use for the Spark driver.
driver_coresinteger
NoNumber of cores to use for the Spark driver.
executor_memorystring
NoMemory to use for the Spark executor.
executor_coresinteger
NoNumber of cores to use for each executor.
num_executorsinteger
NoNumber of executors to use for the Spark session.
session_key_overridestring
NoKey to use for the Spark session.
max_concurrent_sessionsinteger
NoMaximum number of concurrent sessions allowed for this configuration.

DataMaintenance

Data maintenance configuration options for Components.

PropertyDefaultTypeRequiredDescription
enabledboolean
NoBoolean flag indicating whether data maintenance is enabled for the Component.
manual_table_compactionboolean
NoBoolean flag indicating whether manual table compaction is enabled for the Component. This is currently only relevant for DuckLake Data Planes.
manual_table_compaction_record_count_threshold10integer
NoConsider files with fewer than this number of records in determining whether to perform manual table compaction. This is currently only relevant for DuckLake Data Planes.
manual_table_compaction_file_count_threshold10integer
NoRun manual table compaction if the number of files with fewer than manual_table_compaction_record_count_threshold records exceeds this threshold. This is currently only relevant for DuckLake Data Planes.

ResourceMetadata

Meta information of a resource. In most cases, it doesn't affect the system behavior but may be helpful to analyze Project resources.

PropertyDefaultTypeRequiredDescription
sourceNoThe origin or source information for the resource.
source_event_uuidstring
NoEvent UUID associated with creation of this resource.

ResourceLocation

The origin or source information for the resource.

PropertyDefaultTypeRequiredDescription
pathstringYesPath within repository files where the resource is defined.
first_line_numberinteger
NoFirst line number within path file where the resource is defined.

RetryStrategy

Retry strategy configuration for Component operations. This configuration leverages the tenacity library to implement robust retry mechanisms. The configuration options directly map to tenacity's retry parameters. Details on the tenacity library can be found here: https://tenacity.readthedocs.io/en/latest/api.html#retry-main-api Current implementation includes: - stop_after_attempt: Maximum number of retry attempts - stop_after_delay: Give up on retries one attempt before you would exceed the delay. Will need to supply at least one of the two parameters. Additional retry parameters will be added as needed to support more complex use cases.

PropertyDefaultTypeRequiredDescription
stop_after_attemptinteger
NoNumber of retry attempts before giving up. If set to None, it will not stop after any number of attempts.
stop_after_delayinteger
NoMaximum time (in seconds) to spend on retries before giving up. If set to None, it will not stop after any time delay.