Dashboard
laktory.models.resources.databricks.Dashboard
¤
Bases: RenderableFileMixin, DashboardBase
Databricks Lakeview Dashboard
Examples:
import io
from laktory import models
dashboard_yaml = '''
display_name: databricks-costs
file_path: ./dashboards/databricks_costs.json
parent_path: /.laktory/dashboards
warehouse_id: a7d9f2kl8mp3q6rt
access_controls:
- group_name: account users
permission_level: CAN_VIEW
- group_name: role-engineers
permission_level: CAN_RUN
'''
dashboard = models.resources.databricks.Dashboard.model_validate_yaml(
io.StringIO(dashboard_yaml)
)
Set render_vars: true to resolve ${vars.x} / ${{ expr }} placeholders
found inside the file_path JSON content itself (e.g. a dataset query
referencing ${vars.catalog}) before it's uploaded - the resolved
content is staged under settings.build_root and never modifies the
original file on disk.
import io
from laktory import models
dashboard_yaml = '''
display_name: databricks-costs
file_path: ./dashboards/databricks_costs.json
warehouse_id: a7d9f2kl8mp3q6rt
render_vars: true
variables:
catalog: dev_catalog
'''
dashboard = models.resources.databricks.Dashboard.model_validate_yaml(
io.StringIO(dashboard_yaml)
)
References
| BASE | DESCRIPTION |
|---|---|
create_time
|
TYPE:
|
dashboard_change_detected
|
TYPE:
|
dashboard_id
|
TYPE:
|
dataset_catalog
|
Sets the default catalog for all datasets in this dashboard. Does not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips)
TYPE:
|
dataset_schema
|
Sets the default schema for all datasets in this dashboard. Does not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips)
TYPE:
|
display_name
|
The display name of the dashboard
TYPE:
|
embed_credentials
|
Whether to embed credentials in the dashboard. Default is
TYPE:
|
etag
|
TYPE:
|
lifecycle_state
|
TYPE:
|
md5
|
TYPE:
|
path
|
TYPE:
|
serialized_dashboard
|
The contents of the dashboard in serialized string form. Conflicts with
TYPE:
|
update_time
|
TYPE:
|
warehouse_id
|
The warehouse ID used to run the dashboard
TYPE:
|
| LAKTORY | DESCRIPTION |
|---|---|
access_controls
|
Access controls list
TYPE:
|
file_path_
|
The path to the dashboard JSON file. Conflicts with
TYPE:
|
name_prefix
|
Prefix added to the dashboard display name
TYPE:
|
name_suffix
|
Suffix added to the dashboard display name
TYPE:
|
parent_path_
|
The path to a workspace folder (inside laktory root) containing the dashboard. If changed, the query will be recreated.
TYPE:
|
render_vars
|
If
TYPE:
|
| METHOD | DESCRIPTION |
|---|---|
build |
Render |
check_staged |
Raise a clear error if this resource is configured for variable |
| ATTRIBUTE | DESCRIPTION |
|---|---|
additional_core_resources |
TYPE:
|
additional_core_resources
property
¤
- permissions
build(vars=None)
¤
Render ${vars.x}/${{ expr }} placeholders in the dashboard JSON
content and stage the result under settings.build_root, if
render_vars is True. No-op otherwise.
Source code in laktory/models/resources/databricks/dashboard.py
119 120 121 122 123 124 125 126 | |
check_staged()
¤
Raise a clear error if this resource is configured for variable
rendering but its staged copy hasn't been written yet (i.e.
.build() hasn't run). Guards against programmatic use that
bypasses Stack.build() (the normal CLI flow always calls it
before dumping resources).
Source code in laktory/models/resources/databricks/_renderablefile.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |