Sync Configuration
Sync Configuration
Section titled “Sync Configuration”Configure advanced sync operations for multi-workspace deployments.
Sync Configuration File
Section titled “Sync Configuration File”Create a sync_config.yml file to define source workspace, target workspaces, and asset selection criteria.
Complete Example
Section titled “Complete Example”source: workspace_id: 123 assets: dashboards: selection: ids ids: [254, 255] include_dependencies: true charts: selection: all include_dependencies: true datasets: selection: mine include_dependencies: false databases: selection: ids ids: [1, 2] include_dependencies: false
target_defaults: overwrite: false include_dependencies: true jinja_context: environment: default company: ACME Corp region: us-east-1
targets: - workspace_id: 456 name: staging overwrite: true jinja_context: environment: staging database_host: staging-db.example.com - workspace_id: 789 name: production jinja_context: environment: production database_host: prod-db.example.comSchema Reference
Section titled “Schema Reference”Source Configuration
Section titled “Source Configuration”| Field | Type | Required | Description |
|---|---|---|---|
workspace_id | integer | Yes | Source workspace ID to pull assets from |
assets | object | Yes | Asset types and selection criteria |
Asset Types
Section titled “Asset Types”Supported asset types under source.assets:
charts- Chart configurationsdashboards- Dashboard layoutsdatasets- Dataset/table configurationsdatabases- Database connection configs
Each asset type uses the Asset Selection schema below.
Asset Selection
Section titled “Asset Selection”| Field | Type | Default | Description |
|---|---|---|---|
selection | string | all | Selection strategy: all, ids, mine, or filter |
ids | array | null | Specific asset IDs (required when selection: ids) |
include_dependencies | boolean | true | Include related dependencies (datasets, databases) |
Target Defaults
Section titled “Target Defaults”Default configuration that applies to all targets unless overridden:
| Field | Type | Default | Description |
|---|---|---|---|
overwrite | boolean | false | Default overwrite behavior for push operations |
include_dependencies | boolean | true | Default dependency inclusion behavior |
jinja_context | object | {} | Default Jinja template variables |
Target Configuration
Section titled “Target Configuration”Each target in the targets array:
| Field | Type | Required | Description |
|---|---|---|---|
workspace_id | integer | Yes | Target workspace ID to push assets to |
name | string | No | Human-readable name for this target |
overwrite | boolean | No | Override default overwrite (null = use defaults) |
jinja_context | object | No | Target-specific Jinja variables (merged with defaults) |
Note: Target-specific jinja_context values override target_defaults.jinja_context.
Selection Strategies
Section titled “Selection Strategies”All Assets
Section titled “All Assets”Pull all assets of the specified type:
charts: selection: all include_dependencies: trueBy IDs
Section titled “By IDs”Pull specific assets by ID:
dashboards: selection: ids ids: [254, 255, 256] include_dependencies: trueMy Assets Only
Section titled “My Assets Only”Pull only assets you own:
datasets: selection: mine include_dependencies: falseWith Filters
Section titled “With Filters”Pull assets matching filter criteria:
charts: selection: filter # Note: filter implementation pendingJinja Templating
Section titled “Jinja Templating”Use Jinja templates in asset configurations:
-- In your SQL querySELECT * FROM {{ environment }}_sales_dataWHERE company = '{{ company }}'Running Sync
Section titled “Running Sync”# Dry run to preview changessup sync run ./sync_config.yml --dry-run
# Pull from sourcesup sync run ./sync_config.yml --pull-only
# Push to targetssup sync run ./sync_config.yml --push-only
# Full sync (pull then push)sup sync run ./sync_config.yml