An anywidget-based Jupyter widget for Microsoft Fabric notebooks that visually configures a normalized schema JSON config for Process Mining data import.
Replaces manual JSON authoring by providing dropdowns, toggles, and inline forms to select lakehouses, tables, columns, and FK/PK relationships, then auto-generates the dataSource section of the config.
pip install normalized-schema-generatorfrom normalized_schema_generator import NormalizedSchemaWidget
w = NormalizedSchemaWidget()
wThe widget auto-detects the Fabric environment and populates lakehouses, tables, and columns using notebookutils and Spark.
After configuring your schema, retrieve the generated JSON:
print(w.config_json)Outside Fabric, the widget uses mock data automatically — no notebookutils or Spark needed:
pip install normalized-schema-generator jupyterlab
jupyter lab- Lakehouse selection from the current workspace
- Data source toggle: Delta Tables or Files (CSV / Parquet)
- Events table (required): column checklist with data type badges, include/exclude toggles
- Cases table (optional): same column management, with required Events-to-Cases FK relationship
- Reference management: add/edit/remove FK joins to lookup tables, with target column selection
- Auto-generated JSON: full
inputDataBindingconfig withdataSource, connection properties, and dataset definitions - Copy to clipboard for the generated JSON
- Fluent 2 styling matching the Fabric design language
The widget generates a complete normalized import config following the Process Mining Normalized Import specification:
dataSourceSchemaType: 1(Normalized)dataSourceType: 2(OneLake)- Proper
datasets[]with Kind 0 (Event), 1 (Case), 2 (Join) - FK columns excluded from
Columns[](exposed viaJoin[].ExportName) - No nested joins on lookup datasets
MIT