1. Input & Setup
Create notebook widgets and read configuration parameters dynamically.
# Widgets (no defaults)
dbutils.widgets.text("schema", "")
dbutils.widgets.text("table", "")
dbutils.widgets.text("tag_column", "") # e.g., "member_id, medicaid_id"
dbutils.widgets.text("lookup_column", "") # e.g., region or contract_name
dbutils.widgets.text("mask_policy", "") # e.g., mask_sensitive_data
dbutils.widgets.text("sensitivity_tag", "") # e.g., pii_sensitive
dbutils.widgets.text("CommonConfig_schema", "") # e.g., governance_config
# Read values
schema = dbutils.widgets.get("schema").strip()
table = dbutils.widgets.get("table").strip()
tag_column = dbutils.widgets.get("tag_column").strip()
lookup_column = dbutils.widgets.get("lookup_column").strip()
mask_policy = dbutils.widgets.get("mask_policy").strip()
sensitivity_tag = dbutils.widgets.get("sensitivity_tag").strip()
config_schema = dbutils.widgets.get("schema").strip()# Current catalog & derive names
catalog = spark.sql("SELECT current_catalog()").collect()[0][0]
table_name = f"{catalog}.{schema}.{table}"
mask_fn_name = f"{config_schema}.{mask_policy}"
rowfilter_fn = f"{config_schema}.{mask_policy}_row_rls"tag_columns = [c.strip() for c in tag_column.split(",") if c.strip()]
print("Table:", table_name)
print("Mask Function:", mask_fn_name)
print("Row Filter:", rowfilter_fn)
💡 Purpose:
Provide flexible, reusable inputs for any Delta table in Unity Catalog.