databricks-labs-lakebridge 0.10.4__tar.gz → 0.10.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/PKG-INFO +2 -2
  2. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/__about__.py +1 -1
  3. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/cli.py +47 -27
  4. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/config.py +1 -1
  5. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/contexts/application.py +4 -4
  6. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/dashboard.py +2 -1
  7. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/installation.py +11 -11
  8. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/install.py +51 -131
  9. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/execute.py +7 -2
  10. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py +3 -3
  11. databricks_labs_lakebridge-0.10.6/databricks/labs/lakebridge/transpiler/repository.py +123 -0
  12. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/pyproject.toml +6 -3
  13. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/.gitignore +0 -0
  14. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/LICENSE +0 -0
  15. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/NOTICE +0 -0
  16. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/README.md +0 -0
  17. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/__init__.py +0 -0
  18. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/__init__.py +0 -0
  19. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/__init__.py +0 -0
  20. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/assessments/configure_assessment.py +0 -0
  21. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/assessments/pipeline.py +0 -0
  22. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/assessments/profiler_config.py +0 -0
  23. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/base_install.py +0 -0
  24. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/connections/__init__.py +0 -0
  25. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/connections/credential_manager.py +0 -0
  26. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/connections/database_manager.py +0 -0
  27. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/connections/env_getter.py +0 -0
  28. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/contexts/__init__.py +0 -0
  29. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/__init__.py +0 -0
  30. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/commons.py +0 -0
  31. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/lakebridge_snow_transpilation_coverage.py +0 -0
  32. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/local_report.py +0 -0
  33. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/sqlglot_snow_transpilation_coverage.py +0 -0
  34. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/coverage/sqlglot_tsql_transpilation_coverage.py +0 -0
  35. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/__init__.py +0 -0
  36. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/configurator.py +0 -0
  37. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/job.py +0 -0
  38. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/recon.py +0 -0
  39. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/table.py +0 -0
  40. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/deployment/upgrade_common.py +0 -0
  41. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/discovery/table.py +0 -0
  42. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/discovery/table_definition.py +0 -0
  43. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/discovery/tsql_table_definition.py +0 -0
  44. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/errors/exceptions.py +0 -0
  45. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/__init__.py +0 -0
  46. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/db_sql.py +0 -0
  47. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/execution_time.py +0 -0
  48. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/file_utils.py +0 -0
  49. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/metastore.py +0 -0
  50. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/recon_config_utils.py +0 -0
  51. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/string_utils.py +0 -0
  52. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/telemetry_utils.py +0 -0
  53. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/helpers/validation.py +0 -0
  54. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/intermediate/__init__.py +0 -0
  55. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/intermediate/dag.py +0 -0
  56. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/intermediate/engine_adapter.py +0 -0
  57. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/intermediate/root_tables.py +0 -0
  58. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/jvmproxy.py +0 -0
  59. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/lineage.py +0 -0
  60. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/__init__.py +0 -0
  61. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/compare.py +0 -0
  62. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/__init__.py +0 -0
  63. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/data_source.py +0 -0
  64. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/databricks.py +0 -0
  65. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/jdbc_reader.py +0 -0
  66. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/oracle.py +0 -0
  67. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/secrets.py +0 -0
  68. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/snowflake.py +0 -0
  69. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/source_adapter.py +0 -0
  70. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/connectors/tsql.py +0 -0
  71. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/constants.py +0 -0
  72. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/exception.py +0 -0
  73. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/execute.py +0 -0
  74. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/__init__.py +0 -0
  75. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/aggregate_query.py +0 -0
  76. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/base.py +0 -0
  77. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/count_query.py +0 -0
  78. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/expression_generator.py +0 -0
  79. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/hash_query.py +0 -0
  80. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/sampling_query.py +0 -0
  81. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/query_builder/threshold_query.py +0 -0
  82. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/recon_capture.py +0 -0
  83. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/recon_config.py +0 -0
  84. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/recon_output_config.py +0 -0
  85. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/runner.py +0 -0
  86. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/sampler.py +0 -0
  87. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/reconcile/schema_compare.py +0 -0
  88. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/__init__.py +0 -0
  89. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/config/credentials.yml +0 -0
  90. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/__init__.py +0 -0
  91. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/__init__.py +0 -0
  92. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/00_0_aggregate_recon_header.md +0 -0
  93. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_0_recon_id.filter.yml +0 -0
  94. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_1_executed_by.filter.yml +0 -0
  95. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/01_2_started_at.filter.yml +0 -0
  96. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_0_source_type.filter.yml +0 -0
  97. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_1_source_table.filter.yml +0 -0
  98. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/02_2_target_table.filter.yml +0 -0
  99. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/04_0_aggregate_summary_table.sql +0 -0
  100. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/05_0_aggregate_recon_drilldown_header.md +0 -0
  101. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_0_recon_id.filter.yml +0 -0
  102. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_1_category.filter.yml +0 -0
  103. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/06_2_aggregate_type.filter.yml +0 -0
  104. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_0_target_table.filter.yml +0 -0
  105. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/07_1_source_table.filter.yml +0 -0
  106. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/08_0_aggregate_details_table.sql +0 -0
  107. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/09_0_aggregate_missing_mismatch_header.md +0 -0
  108. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/10_0_aggr_mismatched_records.sql +0 -0
  109. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_0_aggr_missing_in_databricks.sql +0 -0
  110. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/11_1_aggr_missing_in_source.sql +0 -0
  111. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/aggregate_reconciliation_metrics/dashboard.yml +0 -0
  112. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/00_0_recon_main.md +0 -0
  113. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_0_recon_id.filter.yml +0 -0
  114. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_1_report_type.filter.yml +0 -0
  115. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/01_2_executed_by.filter.yml +0 -0
  116. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_0_source_type.filter.yml +0 -0
  117. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_1_source_table.filter.yml +0 -0
  118. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/02_2_target_table.filter.yml +0 -0
  119. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/03_0_started_at.filter.yml +0 -0
  120. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/05_0_summary_table.sql +0 -0
  121. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/06_0_schema_comparison_header.md +0 -0
  122. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/07_0_schema_details_table.sql +0 -0
  123. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/08_0_drill_down_header.md +0 -0
  124. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_0_recon_id.filter.yml +0 -0
  125. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/09_1_category.filter.yml +0 -0
  126. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_0_target_table.filter.yml +0 -0
  127. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/10_1_source_table.filter.yml +0 -0
  128. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/11_0_recon_details_pivot.sql +0 -0
  129. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/12_0_daily_data_validation_issue_header.md +0 -0
  130. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/13_0_success_fail_.filter.yml +0 -0
  131. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/14_0_failed_recon_ids.sql +0 -0
  132. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_0_total_failed_runs.sql +0 -0
  133. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_1_failed_targets.sql +0 -0
  134. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/15_2_successful_targets.sql +0 -0
  135. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/16_0_missing_mismatch_header.md +0 -0
  136. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_0_mismatched_records.sql +0 -0
  137. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/17_1_threshold_mismatches.sql +0 -0
  138. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_0_missing_in_databricks.sql +0 -0
  139. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/18_1_missing_in_source.sql +0 -0
  140. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/dashboards/reconciliation_metrics/dashboard.yml +0 -0
  141. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/__init__.py +0 -0
  142. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/__init__.py +0 -0
  143. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_details.sql +0 -0
  144. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_metrics.sql +0 -0
  145. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/aggregate_rules.sql +0 -0
  146. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/details.sql +0 -0
  147. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/main.sql +0 -0
  148. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/resources/reconcile/queries/installation/metrics.sql +0 -0
  149. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/__init__.py +0 -0
  150. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/lsp/__init__.py +0 -0
  151. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/__init__.py +0 -0
  152. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py +0 -0
  153. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/generator/__init__.py +0 -0
  154. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/generator/databricks.py +0 -0
  155. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/lca_utils.py +0 -0
  156. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/local_expression.py +0 -0
  157. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/parsers/__init__.py +0 -0
  158. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/parsers/oracle.py +0 -0
  159. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/parsers/presto.py +0 -0
  160. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/parsers/snowflake.py +0 -0
  161. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/sqlglot/sqlglot_engine.py +0 -0
  162. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/transpile_engine.py +0 -0
  163. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/transpiler/transpile_status.py +0 -0
  164. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/uninstall.py +0 -0
  165. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/upgrades/v0.4.0_add_main_table_operation_name_column.py +0 -0
  166. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/databricks/labs/lakebridge/upgrades/v0.6.0_alter_metrics_datatype.py +0 -0
  167. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/components/Button.tsx +0 -0
  168. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/components/ReconcileTabs.tsx +0 -0
  169. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/css/custom.css +0 -0
  170. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/css/table.css +0 -0
  171. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/pages/index.tsx +0 -0
  172. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/theme/DocSidebarItems/index.tsx +0 -0
  173. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/theme/Footer/index.tsx +0 -0
  174. {databricks_labs_lakebridge-0.10.4 → databricks_labs_lakebridge-0.10.6}/docs/lakebridge/src/theme/Layout/index.tsx +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-labs-lakebridge
3
- Version: 0.10.4
3
+ Version: 0.10.6
4
4
  Summary: Fast and predictable migrations to Databricks Lakehouse Platform. This tool is designed to help you migrate your data and workloads to the Databricks Lakehouse Platform in a fast, predictable, and reliable way. It provides a set of tools and utilities to help you reconcile your data and workloads, assess your current state, and plan your migration.
5
5
  Project-URL: Documentation, https://databrickslabs.github.io/lakebridge
6
6
  Project-URL: Issues, https://github.com/databrickslabs/lakebridge/issues
@@ -26,7 +26,7 @@ Classifier: Topic :: Utilities
26
26
  Requires-Python: >=3.10
27
27
  Requires-Dist: cryptography<45.1.0,>=44.0.2
28
28
  Requires-Dist: databricks-bb-analyzer~=0.1.9
29
- Requires-Dist: databricks-labs-blueprint[yaml]<0.12.0,>=0.11.2
29
+ Requires-Dist: databricks-labs-blueprint[yaml]<0.12.0,>=0.11.3
30
30
  Requires-Dist: databricks-labs-lsql==0.16.0
31
31
  Requires-Dist: databricks-sdk~=0.51.0
32
32
  Requires-Dist: duckdb~=1.2.2
@@ -1,2 +1,2 @@
1
1
  # DO NOT MODIFY THIS FILE
2
- __version__ = "0.10.4"
2
+ __version__ = "0.10.6"
@@ -33,14 +33,12 @@ from databricks.labs.lakebridge.contexts.application import ApplicationContext
33
33
  from databricks.labs.lakebridge.helpers.recon_config_utils import ReconConfigPrompts
34
34
  from databricks.labs.lakebridge.helpers.telemetry_utils import make_alphanum_or_semver
35
35
  from databricks.labs.lakebridge.install import WorkspaceInstaller
36
- from databricks.labs.lakebridge.install import TranspilerInstaller
37
36
  from databricks.labs.lakebridge.reconcile.runner import ReconcileRunner
38
37
  from databricks.labs.lakebridge.lineage import lineage_generator
39
38
  from databricks.labs.lakebridge.reconcile.recon_config import RECONCILE_OPERATION_NAME, AGG_RECONCILE_OPERATION_NAME
40
39
  from databricks.labs.lakebridge.transpiler.execute import transpile as do_transpile
41
-
42
-
43
40
  from databricks.labs.lakebridge.transpiler.lsp.lsp_engine import LSPEngine
41
+ from databricks.labs.lakebridge.transpiler.repository import TranspilerRepository
44
42
  from databricks.labs.lakebridge.transpiler.sqlglot.sqlglot_engine import SqlglotEngine
45
43
  from databricks.labs.lakebridge.transpiler.transpile_engine import TranspileEngine
46
44
 
@@ -54,7 +52,7 @@ def raise_validation_exception(msg: str) -> NoReturn:
54
52
  raise ValueError(msg)
55
53
 
56
54
 
57
- def _installer(ws: WorkspaceClient) -> WorkspaceInstaller:
55
+ def _installer(ws: WorkspaceClient, transpiler_repository: TranspilerRepository) -> WorkspaceInstaller:
58
56
  app_context = ApplicationContext(_verify_workspace_client(ws))
59
57
  return WorkspaceInstaller(
60
58
  app_context.workspace_client,
@@ -64,6 +62,7 @@ def _installer(ws: WorkspaceClient) -> WorkspaceInstaller:
64
62
  app_context.product_info,
65
63
  app_context.resource_configurator,
66
64
  app_context.workspace_installation,
65
+ transpiler_repository=transpiler_repository,
67
66
  )
68
67
 
69
68
 
@@ -114,12 +113,13 @@ def transpile(
114
113
  skip_validation: str | None = None,
115
114
  catalog_name: str | None = None,
116
115
  schema_name: str | None = None,
116
+ transpiler_repository: TranspilerRepository = TranspilerRepository.user_home(),
117
117
  ):
118
118
  """Transpiles source dialect to databricks dialect"""
119
119
  ctx = ApplicationContext(w)
120
120
  logger.debug(f"Preconfigured transpiler config: {ctx.transpile_config!r}")
121
121
  with_user_agent_extra("cmd", "execute-transpile")
122
- checker = _TranspileConfigChecker(ctx.transpile_config, ctx.prompts)
122
+ checker = _TranspileConfigChecker(ctx.transpile_config, ctx.prompts, transpiler_repository)
123
123
  checker.use_transpiler_config_path(transpiler_config_path)
124
124
  checker.use_source_dialect(source_dialect)
125
125
  checker.use_input_source(input_source)
@@ -188,14 +188,19 @@ class _TranspileConfigChecker:
188
188
 
189
189
  _config: TranspileConfig
190
190
  """The workspace configuration for transpiling, updated from command-line arguments."""
191
- # _engine: TranspileEngine | None
192
- # """The transpiler engine to use for transpiling, lazily loaded based on the configuration."""
193
191
  _prompts: Prompts
194
192
  """Prompting system, for requesting configuration that hasn't been provided."""
195
193
  _source_dialect_override: str | None = None
196
194
  """The source dialect provided on the command-line, if any."""
197
-
198
- def __init__(self, config: TranspileConfig | None, prompts: Prompts) -> None:
195
+ _transpiler_repository: TranspilerRepository
196
+ """The repository where available transpilers are installed."""
197
+
198
+ def __init__(
199
+ self,
200
+ config: TranspileConfig | None,
201
+ prompts: Prompts,
202
+ transpiler_repository: TranspilerRepository,
203
+ ) -> None:
199
204
  if config is None:
200
205
  logger.warning(
201
206
  "No workspace transpile configuration, use 'install-transpile' to (re)install and configure; using defaults for now."
@@ -203,6 +208,7 @@ class _TranspileConfigChecker:
203
208
  config = TranspileConfig()
204
209
  self._config = config
205
210
  self._prompts = prompts
211
+ self._transpiler_repository = transpiler_repository
206
212
  self._source_dialect_override = None
207
213
 
208
214
  @staticmethod
@@ -334,7 +340,7 @@ class _TranspileConfigChecker:
334
340
  def _configure_transpiler_config_path(self, source_dialect: str) -> TranspileEngine | None:
335
341
  """Configure the transpiler config path based on the requested source dialect."""
336
342
  # Names of compatible transpiler engines for the given dialect.
337
- compatible_transpilers = TranspilerInstaller.transpilers_with_dialect(source_dialect)
343
+ compatible_transpilers = self._transpiler_repository.transpilers_with_dialect(source_dialect)
338
344
  match len(compatible_transpilers):
339
345
  case 0:
340
346
  # Nothing found for the specified dialect, fail.
@@ -349,7 +355,7 @@ class _TranspileConfigChecker:
349
355
  f"Multiple transpilers available for dialect {source_dialect!r}: {compatible_transpilers!r}"
350
356
  )
351
357
  transpiler_name = self._prompts.choice("Select the transpiler:", list(compatible_transpilers))
352
- transpiler_config_path = TranspilerInstaller.transpiler_config_path(transpiler_name)
358
+ transpiler_config_path = self._transpiler_repository.transpiler_config_path(transpiler_name)
353
359
  logger.info(f"Lakebridge will use the {transpiler_name} transpiler.")
354
360
  self._config = dataclasses.replace(self._config, transpiler_config_path=str(transpiler_config_path))
355
361
  return TranspileEngine.load_engine(transpiler_config_path)
@@ -361,7 +367,7 @@ class _TranspileConfigChecker:
361
367
  if engine is None:
362
368
  engine = self._configure_transpiler_config_path(source_dialect)
363
369
  if engine is None:
364
- supported_dialects = ", ".join(TranspilerInstaller.all_dialects())
370
+ supported_dialects = ", ".join(self._transpiler_repository.all_dialects())
365
371
  msg = f"{msg_prefix}: {source_dialect!r} (supported dialects: {supported_dialects})"
366
372
  raise_validation_exception(msg)
367
373
  else:
@@ -375,7 +381,7 @@ class _TranspileConfigChecker:
375
381
 
376
382
  def _prompt_source_dialect(self) -> TranspileEngine:
377
383
  # This is similar to the post-install prompting for the source dialect.
378
- supported_dialects = TranspilerInstaller.all_dialects()
384
+ supported_dialects = self._transpiler_repository.all_dialects()
379
385
  match len(supported_dialects):
380
386
  case 0:
381
387
  msg = "No transpilers are available, install using 'install-transpile' or use --transpiler-conf-path'."
@@ -522,7 +528,7 @@ async def _transpile(ctx: ApplicationContext, config: TranspileConfig, engine: T
522
528
  return [status]
523
529
 
524
530
 
525
- def _override_workspace_client_config(ctx: ApplicationContext, overrides: dict[str, str] | None):
531
+ def _override_workspace_client_config(ctx: ApplicationContext, overrides: dict[str, str] | None) -> None:
526
532
  """
527
533
  Override the Workspace client's SDK config with the user provided SDK config.
528
534
  Users can provide the cluster_id and warehouse_id during the installation.
@@ -541,7 +547,7 @@ def _override_workspace_client_config(ctx: ApplicationContext, overrides: dict[s
541
547
 
542
548
 
543
549
  @lakebridge.command
544
- def reconcile(w: WorkspaceClient):
550
+ def reconcile(w: WorkspaceClient) -> None:
545
551
  """[EXPERIMENTAL] Reconciles source to Databricks datasets"""
546
552
  with_user_agent_extra("cmd", "execute-reconcile")
547
553
  ctx = ApplicationContext(w)
@@ -557,7 +563,7 @@ def reconcile(w: WorkspaceClient):
557
563
 
558
564
 
559
565
  @lakebridge.command
560
- def aggregates_reconcile(w: WorkspaceClient):
566
+ def aggregates_reconcile(w: WorkspaceClient) -> None:
561
567
  """[EXPERIMENTAL] Reconciles Aggregated source to Databricks datasets"""
562
568
  with_user_agent_extra("cmd", "execute-aggregates-reconcile")
563
569
  ctx = ApplicationContext(w)
@@ -574,7 +580,13 @@ def aggregates_reconcile(w: WorkspaceClient):
574
580
 
575
581
 
576
582
  @lakebridge.command
577
- def generate_lineage(w: WorkspaceClient, *, source_dialect: str | None = None, input_source: str, output_folder: str):
583
+ def generate_lineage(
584
+ w: WorkspaceClient,
585
+ *,
586
+ source_dialect: str | None = None,
587
+ input_source: str,
588
+ output_folder: str,
589
+ ) -> None:
578
590
  """[Experimental] Generates a lineage of source SQL files or folder"""
579
591
  ctx = ApplicationContext(w)
580
592
  logger.debug(f"User: {ctx.current_user}")
@@ -595,7 +607,7 @@ def generate_lineage(w: WorkspaceClient, *, source_dialect: str | None = None, i
595
607
 
596
608
 
597
609
  @lakebridge.command
598
- def configure_secrets(w: WorkspaceClient):
610
+ def configure_secrets(w: WorkspaceClient) -> None:
599
611
  """Setup reconciliation connection profile details as Secrets on Databricks Workspace"""
600
612
  recon_conf = ReconConfigPrompts(w)
601
613
 
@@ -607,7 +619,7 @@ def configure_secrets(w: WorkspaceClient):
607
619
 
608
620
 
609
621
  @lakebridge.command(is_unauthenticated=True)
610
- def configure_database_profiler():
622
+ def configure_database_profiler() -> None:
611
623
  """[Experimental] Install the lakebridge Assessment package"""
612
624
  prompts = Prompts()
613
625
 
@@ -622,32 +634,40 @@ def configure_database_profiler():
622
634
 
623
635
 
624
636
  @lakebridge.command()
625
- def install_transpile(w: WorkspaceClient, artifact: str | None = None):
637
+ def install_transpile(
638
+ w: WorkspaceClient,
639
+ artifact: str | None = None,
640
+ transpiler_repository: TranspilerRepository = TranspilerRepository.user_home(),
641
+ ) -> None:
626
642
  """Install the Lakebridge transpilers"""
627
643
  with_user_agent_extra("cmd", "install-transpile")
628
644
  if artifact:
629
645
  with_user_agent_extra("artifact-overload", Path(artifact).name)
630
646
  user = w.current_user
631
647
  logger.debug(f"User: {user}")
632
- installer = _installer(w)
648
+ installer = _installer(w, transpiler_repository)
633
649
  installer.run(module="transpile", artifact=artifact)
634
650
 
635
651
 
636
652
  @lakebridge.command(is_unauthenticated=False)
637
- def configure_reconcile(w: WorkspaceClient):
653
+ def configure_reconcile(
654
+ w: WorkspaceClient,
655
+ transpiler_repository: TranspilerRepository = TranspilerRepository.user_home(),
656
+ ) -> None:
638
657
  """Configure the Lakebridge reconciliation module"""
639
658
  with_user_agent_extra("cmd", "configure-reconcile")
640
659
  user = w.current_user
641
660
  logger.debug(f"User: {user}")
642
- dbsql_id = _create_warehouse(w)
643
- w.config.warehouse_id = dbsql_id
644
- installer = _installer(w)
661
+ if not w.config.warehouse_id:
662
+ dbsql_id = _create_warehouse(w)
663
+ w.config.warehouse_id = dbsql_id
664
+ logger.debug(f"Warehouse ID used for configuring reconcile: {w.config.warehouse_id}.")
665
+ installer = _installer(w, transpiler_repository)
645
666
  installer.run(module="reconcile")
646
- _remove_warehouse(w, dbsql_id)
647
667
 
648
668
 
649
669
  @lakebridge.command()
650
- def analyze(w: WorkspaceClient, source_directory: str, report_file: str, source_tech: str | None = None):
670
+ def analyze(w: WorkspaceClient, source_directory: str, report_file: str, source_tech: str | None = None) -> None:
651
671
  """Run the Analyzer"""
652
672
  with_user_agent_extra("cmd", "analyze")
653
673
  ctx = ApplicationContext(w)
@@ -185,6 +185,6 @@ class ReconcileConfig:
185
185
 
186
186
 
187
187
  @dataclass
188
- class RemorphConfigs:
188
+ class LakebridgeConfiguration:
189
189
  transpile: TranspileConfig | None = None
190
190
  reconcile: ReconcileConfig | None = None
@@ -12,7 +12,7 @@ from databricks.sdk.config import Config
12
12
  from databricks.sdk.errors import NotFound
13
13
  from databricks.sdk.service.iam import User
14
14
 
15
- from databricks.labs.lakebridge.config import TranspileConfig, ReconcileConfig, RemorphConfigs
15
+ from databricks.labs.lakebridge.config import TranspileConfig, ReconcileConfig, LakebridgeConfiguration
16
16
  from databricks.labs.lakebridge.deployment.configurator import ResourceConfigurator
17
17
  from databricks.labs.lakebridge.deployment.dashboard import DashboardDeployment
18
18
  from databricks.labs.lakebridge.deployment.installation import WorkspaceInstallation
@@ -42,7 +42,7 @@ class ApplicationContext:
42
42
 
43
43
  @cached_property
44
44
  def product_info(self) -> ProductInfo:
45
- return ProductInfo.from_class(RemorphConfigs)
45
+ return ProductInfo.from_class(LakebridgeConfiguration)
46
46
 
47
47
  @cached_property
48
48
  def installation(self) -> Installation:
@@ -65,8 +65,8 @@ class ApplicationContext:
65
65
  return None
66
66
 
67
67
  @cached_property
68
- def remorph_config(self) -> RemorphConfigs:
69
- return RemorphConfigs(transpile=self.transpile_config, reconcile=self.recon_config)
68
+ def remorph_config(self) -> LakebridgeConfiguration:
69
+ return LakebridgeConfiguration(transpile=self.transpile_config, reconcile=self.recon_config)
70
70
 
71
71
  @cached_property
72
72
  def connect_config(self) -> Config:
@@ -54,7 +54,8 @@ class DashboardDeployment:
54
54
 
55
55
  valid_dashboard_refs = set()
56
56
  for dashboard_folder in folder.iterdir():
57
- if not dashboard_folder.is_dir():
57
+ # Make sure the directory contains a dashboard
58
+ if not (dashboard_folder.is_dir() and dashboard_folder.joinpath("dashboard.yml").exists()):
58
59
  continue
59
60
  valid_dashboard_refs.add(self._dashboard_reference(dashboard_folder))
60
61
  dashboard = self._update_or_create_dashboard(dashboard_folder, parent_path, config.metadata_config)
@@ -11,7 +11,7 @@ from databricks.sdk.errors import NotFound
11
11
  from databricks.sdk.mixins.compute import SemVer
12
12
  from databricks.sdk.errors.platform import InvalidParameterValue, ResourceDoesNotExist
13
13
 
14
- from databricks.labs.lakebridge.config import RemorphConfigs
14
+ from databricks.labs.lakebridge.config import LakebridgeConfiguration
15
15
  from databricks.labs.lakebridge.deployment.recon import ReconDeployment
16
16
 
17
17
  logger = logging.getLogger("databricks.labs.lakebridge.install")
@@ -54,14 +54,14 @@ class WorkspaceInstallation:
54
54
  return Version(
55
55
  version=local_installed_version,
56
56
  date=local_installed_date,
57
- wheel=f"databricks_labs_remorph-{local_installed_version}-py3-none-any.whl",
57
+ wheel=f"databricks_labs_lakebridge-{local_installed_version}-py3-none-any.whl",
58
58
  )
59
59
 
60
60
  def _get_ws_version(self):
61
61
  try:
62
62
  return self._installation.load(Version)
63
- except ResourceDoesNotExist as err:
64
- logger.warning(f"Unable to get Workspace Version due to: {err}")
63
+ except ResourceDoesNotExist:
64
+ logger.debug("No existing version found in workspace; assuming fresh installation.")
65
65
  return None
66
66
 
67
67
  def _apply_upgrades(self):
@@ -91,21 +91,21 @@ class WorkspaceInstallation:
91
91
  wheel_paths = [f"/Workspace{wheel}" for wheel in wheel_paths]
92
92
  return wheel_paths
93
93
 
94
- def install(self, config: RemorphConfigs):
94
+ def install(self, config: LakebridgeConfiguration):
95
95
  self._apply_upgrades()
96
96
  wheel_paths: list[str] = self._upload_wheel()
97
97
  if config.reconcile:
98
- logger.info("Installing Remorph reconcile Metadata components.")
98
+ logger.info("Installing Lakebridge reconcile Metadata components.")
99
99
  self._recon_deployment.install(config.reconcile, wheel_paths)
100
100
 
101
- def uninstall(self, config: RemorphConfigs):
102
- # This will remove all the Remorph modules
101
+ def uninstall(self, config: LakebridgeConfiguration):
102
+ # This will remove all the Lakebridge modules
103
103
  if not self._prompts.confirm(
104
- "Do you want to uninstall Remorph from the workspace too, this would "
105
- "remove Remorph project folder, jobs, metadata and dashboards"
104
+ "Do you want to uninstall Lakebridge from the workspace too, this would "
105
+ "remove Lakebridge project folder, jobs, metadata and dashboards"
106
106
  ):
107
107
  return
108
- logger.info(f"Uninstalling Remorph from {self._ws.config.host}.")
108
+ logger.info(f"Uninstalling Lakebridge from {self._ws.config.host}.")
109
109
  try:
110
110
  self._installation.files()
111
111
  except NotFound: