This is an automated email from the ASF dual-hosted git repository.
aglinxinyuan pushed a change to branch xinyuan-loop-feb
in repository https://gitbox.apache.org/repos/asf/texera.git
from 4c972587a6 Merge branch 'main' into xinyuan-loop-feb
add 6dd16b5de8 chore(deps): bump idna from 3.14 to 3.15 in /amber (#5364)
add 76f116f5e0 test(amber): add AmberKryoInitializer spec (#5387)
add 6a9437ed6e refactor(frontend): standardize menu.component subscription
cleanup (#5324)
add 749798d821 fix(frontend): handle 401 by clearing session, skip sending
expired JWTs (#5392)
add cf273e8f74 ci: match system-requirements-lock.txt in labeler globs
(#5399)
add eac23d2101 feat(python-notebook-migration, config): add
python-notebook-migration-enabled feature flag (#5254)
add d46d623fdf chore(ci): run LICENSE-binary drift check weekly (#5406)
add e9f2b8ed35 fix: replace git hash with build number in UI footer (#5153)
add e02756113e chore: bump main version to 1.3.0-incubating-SNAPSHOT
(#5410)
add d9676a732a chore(asf): use raw payload bypass_actors for branch
protection (#5413)
add 57640a74a3 test(workflow-core): add unit test coverage for core
executor traits + factory (#5400)
add 65aca57507 fix(frontend): exclude /api/config/pre-login from JwtModule
(#5408)
add ba963cfacf chore: add 1.2.0-incubating and 1.3.0-incubating-SNAPSHOT
to bug-report options (#5415)
add 5c2eaa2ce6 fix(auth): make JwtAuthFilter eager-401 with @PermitAll
opt-out (#5404)
add 38f5ac5fb2 test(workflow-operator): add ReservoirSamplingOpExec spec
(#5384)
add 09aac02a55 fix: keep failed-upload cleanup inside the upload worker
(#5249)
add 2793fc7ff1 chore(ci): add stale workflow to auto-close inactive PRs
(#5419)
add 5f54275225 fix(workflow-operator): prevent NPE when Sort operator is
unconfigured (#5416)
add f2f056455d test(amber): add unit test coverage for dashboard/hub
entity model (#5402)
add 7cf37d0405 test(amber): add unit test coverage for ClientEvent
sealed-trait family (#5440)
add e987f133f4 test(amber): add unit test coverage for StatisticsManager +
SerializationManager (#5439)
add ce91924351 fix(frontend): use default import for package.json version
in dev build (#5444)
add 65ce1e52d1 test(amber): expand ExecutionResultService spec coverage
(#5390)
add dc31aa2dc7 test(frontend): add spec for HighlightSearchTermsPipe
(#5458)
add 0e35ac6de8 test(amber): unit tests for web/resource pure-logic helpers
(#5219)
add afc5f98c8e fix(auth): require REGULAR/ADMIN role on LiteLLM proxy
endpoints (#5421)
add dd8ab8ae94 test(amber): add unit test coverage for InputManager (#5451)
add 75b46197d3 test(amber): add unit test coverage for record-storage
cluster (#5447)
add 48e800e445 fix: scope large binary storage and cleanup by execution id
(#5280)
add 564ccdbfd5 test(frontend): add spec for GoogleAuthService (#5457)
add d751b89162 Merge branch 'main' into xinyuan-loop-feb
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 36 ++-
.github/ISSUE_TEMPLATE/bug-template.yaml | 7 +-
.github/labeler.yml | 5 +-
.github/workflows/build.yml | 3 +-
.github/workflows/license-binary-checker.yml | 4 +-
.github/workflows/stale.yml | 74 +++++
.../texera/service/AccessControlService.scala | 12 +-
.../service/resource/AccessControlResource.scala | 54 +++-
.../service/resource/HealthCheckResource.scala | 2 +
.../auth/UnauthorizedExceptionMapperSpec.scala | 59 ++++
.../service/AccessControlServiceRunSpec.scala | 5 +
.../service/resource/LiteLLMProxyAuthSpec.scala | 299 ++++++++++++++++++++
.../main/python/core/models/type/large_binary.py | 4 +-
.../src/main/python/core/storage/storage_config.py | 5 +
.../pytexera/storage/large_binary_input_stream.py | 4 +-
.../pytexera/storage/large_binary_manager.py | 110 +++++---
.../pytexera/storage/large_binary_output_stream.py | 28 +-
amber/src/main/python/texera_run_python_worker.py | 2 +
.../pythonworker/PythonWorkflowWorker.scala | 3 +-
.../scheduling/config/WorkerConfig.scala | 9 +-
.../engine/architecture/worker/DPThread.scala | 10 +-
.../architecture/worker/WorkflowWorker.scala | 8 +-
.../dashboard/user/workflow/WorkflowResource.scala | 6 +-
.../texera/web/service/WorkflowService.scala | 6 +-
.../packaging/test_state_materialization_e2e.py | 1 +
.../python/core/models/type/test_large_binary.py | 6 +-
.../core/storage/iceberg/test_iceberg_document.py | 1 +
.../storage/test_large_binary_input_stream.py | 5 +-
.../pytexera/storage/test_large_binary_manager.py | 133 +++++----
.../storage/test_large_binary_output_stream.py | 9 +-
.../architecture/controller/ClientEventSpec.scala | 249 ++++++++++++++++
.../messaginglayer/InputManagerSpec.scala | 224 +++++++++++++++
.../scheduling/config/SchedulingConfigsSpec.scala | 19 +-
.../engine/architecture/worker/DPThreadSpec.scala | 32 ++-
.../worker/managers/SerializationManagerSpec.scala | 193 +++++++++++++
.../worker/managers/StatisticsManagerSpec.scala | 145 ++++++++++
.../engine/common/AmberKryoInitializerSpec.scala | 114 ++++++++
.../common/storage/EmptyRecordStorageSpec.scala | 155 ++++++++++
.../storage/SequentialRecordStorageSpec.scala | 244 ++++++++++++++++
.../common/storage/VFSRecordStorageSpec.scala | 258 +++++++++++++++++
.../texera/web/resource/EmailTemplateSpec.scala | 126 +++++++++
.../web/resource/HealthCheckResourceSpec.scala} | 20 +-
.../SuccessExecutionResultSpec.scala} | 26 +-
.../dashboard/FulltextSearchQueryUtilsSpec.scala | 200 +++++++++++++
.../resource/dashboard/hub/EntityTablesSpec.scala | 112 ++++++++
.../resource/dashboard/hub/EntityTypeSpec.scala | 63 +++++
.../dashboard/hub/HubEntityModelSpec.scala | 235 ++++++++++++++++
.../web/service/ExecutionResultServiceSpec.scala | 87 ++++++
amber/system-requirements-lock.txt | 2 +-
bin/k8s/values.yaml | 2 +-
build.sbt | 2 +-
.../org/apache/texera/auth/JwtAuthFilter.scala | 103 +++++--
.../apache/texera/auth/UnauthorizedException.scala | 57 ++++
.../org/apache/texera/auth/JwtAuthFilterSpec.scala | 313 +++++++++++++++++++++
common/config/src/main/resources/gui.conf | 4 +
common/config/src/main/resources/storage.conf | 4 +
.../apache/texera/amber/config/StorageConfig.scala | 1 +
.../scala/org/apache/texera/config/GuiConfig.scala | 2 +
.../texera/service/util/LargeBinaryManager.scala | 86 ++++--
.../core/executor/CoreExecutorReflectionSpec.scala | 86 ++++++
.../service/util/LargeBinaryManagerSpec.scala | 115 ++++++--
.../service/util/LargeBinaryManagerUnitSpec.scala | 72 +++++
.../texera/amber/operator/sort/SortOpDesc.scala | 7 +-
.../ReservoirSamplingOpExecSpec.scala | 181 ++++++++++++
.../amber/operator/sort/SortOpDescSpec.scala | 66 +++++
.../service/ComputingUnitManagingService.scala | 8 +-
.../service/resource/HealthCheckResource.scala | 2 +
.../ComputingUnitManagingServiceRunSpec.scala | 2 +
.../org/apache/texera/service/ConfigService.scala | 8 +-
.../texera/service/resource/ConfigResource.scala | 1 +
.../service/resource/HealthCheckResource.scala | 2 +
.../texera/service/ConfigServiceRunSpec.scala | 2 +
.../service/resource/ConfigResourceAuthSpec.scala | 31 +-
.../org/apache/texera/service/FileService.scala | 8 +-
.../texera/service/resource/DatasetResource.scala | 9 +-
.../service/resource/HealthCheckResource.scala | 2 +
frontend/.gitignore | 4 +-
frontend/angular.json | 4 +
frontend/{git-version.js => build-version.js} | 39 ++-
frontend/package.json | 11 +-
frontend/src/app/app.module.ts | 10 +-
.../app/common/service/gui-config.service.mock.ts | 1 +
.../unauthorized-http-interceptor.service.spec.ts | 193 +++++++++++++
.../unauthorized-http-interceptor.service.ts | 87 ++++++
.../service/user/google-auth.service.spec.ts | 55 ++++
frontend/src/app/common/type/gui-config.ts | 1 +
.../dashboard/component/dashboard.component.html | 2 +-
.../dashboard/component/dashboard.component.scss | 2 +-
.../app/dashboard/component/dashboard.component.ts | 2 +-
.../highlight-search-terms.pipe.spec.ts | 67 +++++
.../component/menu/menu.component.spec.ts | 150 +++++++++-
.../app/workspace/component/menu/menu.component.ts | 42 ++-
.../execute-workflow/execute-workflow.service.ts | 2 +-
.../version.spec.ts} | 18 +-
.../{environment.prod.ts => version.ts} | 14 +-
frontend/tsconfig.json | 1 +
frontend/yarn.lock | 27 +-
.../texera/service/WorkflowCompilingService.scala | 3 +-
.../service/resource/HealthCheckResource.scala | 2 +
.../service/WorkflowCompilingServiceRunSpec.scala | 2 +
100 files changed, 4944 insertions(+), 385 deletions(-)
create mode 100644 .github/workflows/stale.yml
create mode 100644
access-control-service/src/test/scala/org/apache/texera/auth/UnauthorizedExceptionMapperSpec.scala
create mode 100644
access-control-service/src/test/scala/org/apache/texera/service/resource/LiteLLMProxyAuthSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/architecture/controller/ClientEventSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/architecture/messaginglayer/InputManagerSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/architecture/worker/managers/SerializationManagerSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/architecture/worker/managers/StatisticsManagerSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/common/AmberKryoInitializerSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/common/storage/EmptyRecordStorageSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/common/storage/SequentialRecordStorageSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/amber/engine/common/storage/VFSRecordStorageSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/web/resource/EmailTemplateSpec.scala
copy
amber/src/{main/scala/org/apache/texera/web/resource/SystemMetadataResource.scala
=> test/scala/org/apache/texera/web/resource/HealthCheckResourceSpec.scala}
(62%)
copy
amber/src/test/scala/org/apache/texera/web/{storage/WorkflowStateStoreSpec.scala
=> resource/SuccessExecutionResultSpec.scala} (54%)
create mode 100644
amber/src/test/scala/org/apache/texera/web/resource/dashboard/FulltextSearchQueryUtilsSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/web/resource/dashboard/hub/EntityTablesSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/web/resource/dashboard/hub/EntityTypeSpec.scala
create mode 100644
amber/src/test/scala/org/apache/texera/web/resource/dashboard/hub/HubEntityModelSpec.scala
create mode 100644
common/auth/src/main/scala/org/apache/texera/auth/UnauthorizedException.scala
create mode 100644
common/auth/src/test/scala/org/apache/texera/auth/JwtAuthFilterSpec.scala
create mode 100644
common/workflow-core/src/test/scala/org/apache/texera/service/util/LargeBinaryManagerUnitSpec.scala
create mode 100644
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/reservoirsampling/ReservoirSamplingOpExecSpec.scala
create mode 100644
common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/sort/SortOpDescSpec.scala
rename frontend/{git-version.js => build-version.js} (53%)
create mode 100644
frontend/src/app/common/service/unauthorized-http-interceptor.service.spec.ts
create mode 100644
frontend/src/app/common/service/unauthorized-http-interceptor.service.ts
create mode 100644
frontend/src/app/common/service/user/google-auth.service.spec.ts
create mode 100644
frontend/src/app/dashboard/component/user/user-workflow/user-workflow-list-item/highlight-search-terms.pipe.spec.ts
copy
frontend/src/{app/workspace/service/workflow-result/panel-resize/panel-resize.service.spec.ts
=> environments/version.spec.ts} (67%)
copy frontend/src/environments/{environment.prod.ts => version.ts} (69%)