This is an automated email from the ASF dual-hosted git repository. linxinyuan pushed a commit to branch xiaozhen-sync-region-kill in repository https://gitbox.apache.org/repos/asf/texera.git
commit 42befa9ebc8887f32f6ed06a6242f7b5cbd559a7 Merge: c134106199 ddf5e5d68d Author: Xinyuan Lin <[email protected]> AuthorDate: Wed Apr 15 00:10:20 2026 -0700 Merge branch 'main' into xiaozhen-sync-region-kill .asf.yaml | 1 + .../automatic-email-notif-on-ddl-change.yml | 32 +- .github/workflows/build-and-push-images.yml | 28 +- .github/workflows/github-action-build.yml | 4 +- .licenserc.yaml | 4 + LICENSE | 4 - SECURITY.md | 24 +- amber/operator-requirements.txt | 2 +- amber/requirements.txt | 7 +- .../storage/iceberg/iceberg_catalog_instance.py | 36 +- .../python/core/storage/iceberg/iceberg_utils.py | 40 +- .../core/storage/iceberg/test_iceberg_document.py | 3 + .../src/main/python/core/storage/storage_config.py | 12 +- .../proto/org/apache/texera/amber/core/__init__.py | 6 +- .../amber/engine/architecture/rpc/__init__.py | 7 + .../engine/architecture/sendsemantics/__init__.py | 4 +- .../amber/engine/architecture/worker/__init__.py | 4 +- .../pytexera/storage/test_large_binary_manager.py | 3 + amber/src/main/python/texera_run_python_worker.py | 6 + .../pythonworker/PythonWorkflowWorker.scala | 3 + .../apache/texera/amber/engine/common/Utils.scala | 4 +- .../apache/texera/web/resource/EmailTemplate.scala | 15 +- .../apache/texera/web/resource/GmailResource.scala | 12 +- bin/bootstrap-lakekeeper.sh | 473 +++++++++ bin/frontend-proto-gen.sh | 2 +- bin/k8s/Chart.yaml | 2 +- bin/k8s/values-development.yaml | 365 +++++++ bin/single-node/README.md | 174 +++- common/config/src/main/resources/storage.conf | 15 +- common/config/src/main/resources/user-system.conf | 3 + .../amber/config/EnvironmentalVariable.scala | 1 + .../apache/texera/amber/config/StorageConfig.scala | 4 +- .../org/apache/texera/config/AuthConfig.scala | 7 +- .../apache/texera/config/UserSystemConfig.scala | 1 + .../amber/pybuilder/EncodableInspector.scala | 16 +- .../amber/pybuilder/EncodableStringAnnotation.java | 3 +- .../pybuilder/PythonTemplateBuilderSpec.scala | 16 + common/workflow-core/build.sbt | 19 +- .../org/apache/texera/amber/core/workflow.proto | 3 +- .../core/storage/IcebergCatalogInstance.scala | 2 +- .../storage/result/iceberg/IcebergDocument.scala | 6 + .../result/iceberg/IcebergTableWriter.scala | 6 +- .../core/storage/util/LakeFSStorageClient.scala | 45 +- .../org/apache/texera/amber/util/IcebergUtil.scala | 44 +- .../texera/service/util/LargeBinaryManager.scala | 4 +- .../texera/service/util/S3StorageClient.scala | 3 +- .../result/iceberg/IcebergDocumentSpec.scala | 78 +- .../texera/amber/operator/PortDescriptor.scala | 2 +- .../texera/amber/operator/dummy/DummyOpDesc.scala | 4 +- .../metadata/OperatorMetadataGenerator.scala | 16 + .../sklearn/testing/SklearnTestingOpDesc.scala | 3 +- .../amber/operator/udf/java/JavaUDFOpDesc.scala | 4 +- .../python/DualInputPortsPythonUDFOpDescV2.scala | 3 +- .../operator/udf/python/PythonUDFOpDescV2.scala | 4 +- .../texera/amber/operator/udf/r/RUDFOpDesc.scala | 4 +- .../texera/amber/operator/union/UnionOpDesc.scala | 2 +- .../visualization/DotPlot/DotPlotOpDesc.scala | 6 +- .../IcicleChart/IcicleChartOpDesc.scala | 6 +- .../ImageViz/ImageVisualizerOpDesc.scala | 6 +- .../ScatterMatrixChartOpDesc.scala | 6 +- .../visualization/barChart/BarChartOpDesc.scala | 6 +- .../boxViolinPlot/BoxViolinPlotOpDesc.scala | 6 +- .../bubbleChart/BubbleChartOpDesc.scala | 6 +- .../bulletChart/BulletChartOpDesc.scala | 9 +- .../candlestickChart/CandlestickChartOpDesc.scala | 6 +- .../choroplethMap/ChoroplethMapOpDesc.scala | 6 +- .../ContinuousErrorBandsOpDesc.scala | 6 +- .../contourPlot/ContourPlotOpDesc.scala | 6 +- .../dendrogram/DendrogramOpDesc.scala | 6 +- .../dumbbellPlot/DumbbellPlotOpDesc.scala | 30 +- .../FigureFactoryTableOpDesc.scala | 6 +- .../filledAreaPlot/FilledAreaPlotOpDesc.scala | 6 +- .../funnelPlot/FunnelPlotOpDesc.scala | 6 +- .../ganttChart/GanttChartOpDesc.scala | 6 +- .../gaugeChart/GaugeChartOpDesc.scala | 6 +- .../visualization/heatMap/HeatMapOpDesc.scala | 6 +- .../hierarchychart/HierarchyChartOpDesc.scala | 6 +- .../histogram/HistogramChartOpDesc.scala | 6 +- .../histogram2d/Histogram2DOpDesc.scala | 6 +- .../visualization/htmlviz/HtmlVizOpDesc.scala | 6 +- .../visualization/lineChart/LineChartOpDesc.scala | 6 +- .../nestedTable/NestedTableOpDesc.scala | 6 +- .../networkGraph/NetworkGraphOpDesc.scala | 6 +- .../visualization/pieChart/PieChartOpDesc.scala | 6 +- .../quiverPlot/QuiverPlotOpDesc.scala | 6 +- .../radarChart/RadarChartOpDesc.scala | 6 +- .../rangeSlider/RangeSliderOpDesc.scala | 6 +- .../sankeyDiagram/SankeyDiagramOpDesc.scala | 6 +- .../scatter3DChart/Scatter3dChartOpDesc.scala | 6 +- .../scatterplot/ScatterplotOpDesc.scala | 6 +- .../stripChart/StripChartOpDesc.scala | 6 +- .../tablesChart/TablesPlotOpDesc.scala | 6 +- .../ternaryPlot/TernaryPlotOpDesc.scala | 6 +- .../timeSeriesplot/TimeSeriesOpDesc.scala} | 6 +- .../{TreeplotOpDesc.scala => TreePlotOpDesc.scala} | 6 +- .../visualization/urlviz/UrlVizOpDesc.scala | 6 +- .../volcanoPlot/VolcanoPlotOpDesc.scala | 6 +- .../waterfallChart/WaterfallChartOpDesc.scala | 6 +- .../visualization/wordCloud/WordCloudOpDesc.scala | 6 +- .../resource/ComputingUnitManagingResource.scala | 2 + .../org/apache/texera/service/FileService.scala | 3 + .../service/resource/DatasetResourceSpec.scala | 67 +- frontend/src/app/app-routing.constant.ts | 1 + frontend/src/app/app-routing.module.ts | 5 + frontend/src/app/app.module.ts | 4 + .../src/app/common/service/gmail/gmail.service.ts | 22 +- .../src/app/common/service/user/auth.service.ts | 2 +- frontend/src/app/common/type/physical-plan.ts | 4 +- .../type/proto/google/protobuf/descriptor.ts | 1045 ++++++++++++++------ .../{engine/common => core}/virtualidentity.ts | 67 +- .../amber/{engine/common => core}/workflow.ts | 255 +++-- .../src/app/common/type/proto/scalapb/scalapb.ts | 293 +++--- .../src/app/common/util/computing-unit.util.ts | 353 +++++++ .../src/app/common/util/port-identity-serde.ts | 2 +- .../dashboard/component/dashboard.component.html | 11 + .../app/dashboard/component/dashboard.component.ts | 2 + .../markdown-description.component.html | 19 +- .../markdown-description.component.scss | 15 +- .../markdown-description.component.ts | 98 +- .../user-computing-unit-list-item.component.html | 212 ++++ .../user-computing-unit-list-item.component.scss | 230 +++++ .../user-computing-unit-list-item.component.ts | 316 ++++++ .../user-computing-unit.component.html | 232 +++++ .../user-computing-unit.component.scss | 99 ++ .../user-computing-unit.component.spec.ts | 65 ++ .../user-computing-unit.component.ts | 280 ++++++ .../dataset-detail.component.html | 136 ++- .../dataset-detail.component.scss | 149 +-- .../computing-unit-actions.service.ts | 133 +++ frontend/src/app/dashboard/type/dashboard-entry.ts | 39 +- frontend/src/app/dashboard/type/search-result.ts | 2 +- frontend/src/app/dashboard/type/type-predicates.ts | 5 + .../detail/hub-workflow-detail.component.html | 5 +- frontend/src/app/hub/service/hub.service.ts | 1 + .../component/left-panel/left-panel.component.scss | 1 + .../workspace/component/menu/menu.component.html | 1 + .../workspace/component/menu/menu.component.scss | 4 + .../computing-unit-selection.component.ts | 467 ++------- .../property-editor/property-editor.component.scss | 1 + .../result-panel/result-panel.component.scss | 1 + .../workflow-editor.component.spec.ts | 4 +- .../workflow-editor/workflow-editor.component.ts | 6 +- .../workspace/component/workspace.component.scss | 1 + .../mock-operator-metadata.data.ts | 2 +- .../validation/validation-workflow.service.ts | 10 +- .../model/workflow-action.service.ts | 8 +- .../workflow-graph/util/workflow-util.service.ts | 4 +- .../workspace/types/execute-workflow.interface.ts | 2 +- .../workspace/types/operator-schema.interface.ts | 4 +- .../workspace/types/shared-editing.interface.ts | 125 ++- .../workspace/types/workflow-common.interface.ts | 2 +- frontend/src/styles.scss | 4 +- sql/texera_lakekeeper.sql | 21 + 153 files changed, 5279 insertions(+), 1443 deletions(-)
