Dashboard
laktory.models.resources.databricks.Dashboard
¤
Bases: RenderableFileMixin, TagsMixin, 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
tags:
team: finance
'''
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:
|
tags
|
Tags assigned to the entity as
TYPE:
|
| METHOD | DESCRIPTION |
|---|---|
build |
Render |
check_staged |
Raise a clear error if this resource is configured for variable |
get_tags_additional_resources |
Tag assignment resources for |
| ATTRIBUTE | DESCRIPTION |
|---|---|
additional_core_resources |
TYPE:
|
additional_core_resources
property
¤
- permissions
- tags
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
122 123 124 125 126 127 128 129 | |
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 | |
get_tags_additional_resources(entity_type, entity, tags=None)
¤
Tag assignment resources for entity (a name or a resource reference).
Defaults to the tags of this resource.
Source code in laktory/models/resources/databricks/_tagsmixin.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | |