This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-7137-51b6af3574f41fa3f477a50eee7c7c0c5bc7bee4 in repository https://gitbox.apache.org/repos/asf/texera.git
commit 68389937f0d761fa36ba167edfb08f21515303d7 Author: Yicong Huang <[email protected]> AuthorDate: Thu Jul 30 20:34:03 2026 -0400 chore(config): remove two orphaned GUI config flags with no consumers (#7137) ### What changes were proposed in this PR? Two GUI config flags were still defined and sent to the frontend but read by nobody. `autoAttributeCorrectionEnabled` lost its consumer when the schema auto-correct service was removed in #2578. `expirationTimeInMinutes` lost its only reader when token refresh was removed for security in #3765; the frontend now derives session expiry from the JWT itself. This removes both across every layer they touched: `gui.conf`, `GuiConfig` and its spec, the `/gui` config endpoint (dropping the now-unused `AuthConfig` import), and the frontend `GuiConfig` interface and mock. `AuthConfig.jwtExpirationMinutes` stays untouched — `JwtAuth` still uses it to sign real tokens. ### Any related issues, documentation, discussions? Closes #7135 ### How was this PR tested? Dead-code removal, grep-verified no remaining references to either flag. Existing config specs (GuiConfigSpec, ConfigResourceSpec) continue to cover the config surface. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.8) Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> --- common/config/src/main/resources/gui.conf | 5 ----- .../src/main/scala/org/apache/texera/common/config/GuiConfig.scala | 2 -- .../test/scala/org/apache/texera/common/config/GuiConfigSpec.scala | 3 --- .../scala/org/apache/texera/service/resource/ConfigResource.scala | 6 +----- frontend/src/app/common/service/gui-config.service.mock.ts | 2 -- frontend/src/app/common/type/gui-config.ts | 2 -- 6 files changed, 1 insertion(+), 19 deletions(-) diff --git a/common/config/src/main/resources/gui.conf b/common/config/src/main/resources/gui.conf index 7a522a2fe1..1e500dd35c 100644 --- a/common/config/src/main/resources/gui.conf +++ b/common/config/src/main/resources/gui.conf @@ -54,11 +54,6 @@ gui { export-execution-result-enabled = false export-execution-result-enabled = ${?GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED} - # whether automatically correcting attribute name on change is enabled - # see AutoAttributeCorrectionService for more details - auto-attribute-correction-enabled = true - auto-attribute-correction-enabled = ${?GUI_WORKFLOW_WORKSPACE_AUTO_ATTRIBUTE_CORRECTION_ENABLED} - # default execution mode for workflows, can be either MATERIALIZED or PIPELINED default-execution-mode = PIPELINED default-execution-mode = ${?GUI_WORKFLOW_WORKSPACE_DEFAULT_EXECUTION_MODE} diff --git a/common/config/src/main/scala/org/apache/texera/common/config/GuiConfig.scala b/common/config/src/main/scala/org/apache/texera/common/config/GuiConfig.scala index 68608de4b2..6897b8e512 100644 --- a/common/config/src/main/scala/org/apache/texera/common/config/GuiConfig.scala +++ b/common/config/src/main/scala/org/apache/texera/common/config/GuiConfig.scala @@ -43,8 +43,6 @@ object GuiConfig { conf.getBoolean("gui.workflow-workspace.user-preset-enabled") val guiWorkflowWorkspaceExportExecutionResultEnabled: Boolean = conf.getBoolean("gui.workflow-workspace.export-execution-result-enabled") - val guiWorkflowWorkspaceAutoAttributeCorrectionEnabled: Boolean = - conf.getBoolean("gui.workflow-workspace.auto-attribute-correction-enabled") val guiWorkflowWorkspaceDefaultExecutionMode: String = conf.getString("gui.workflow-workspace.default-execution-mode") val guiWorkflowWorkspaceSelectingFilesFromDatasetsEnabled: Boolean = diff --git a/common/config/src/test/scala/org/apache/texera/common/config/GuiConfigSpec.scala b/common/config/src/test/scala/org/apache/texera/common/config/GuiConfigSpec.scala index fbee0c9804..afb1d908c4 100644 --- a/common/config/src/test/scala/org/apache/texera/common/config/GuiConfigSpec.scala +++ b/common/config/src/test/scala/org/apache/texera/common/config/GuiConfigSpec.scala @@ -41,9 +41,6 @@ class GuiConfigSpec extends AnyFlatSpec with Matchers { ifUnset("GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED")( GuiConfig.guiWorkflowWorkspaceExportExecutionResultEnabled shouldBe false ) - ifUnset("GUI_WORKFLOW_WORKSPACE_AUTO_ATTRIBUTE_CORRECTION_ENABLED")( - GuiConfig.guiWorkflowWorkspaceAutoAttributeCorrectionEnabled shouldBe true - ) ifUnset("GUI_WORKFLOW_WORKSPACE_SELECTING_FILES_FROM_DATASETS_ENABLED")( GuiConfig.guiWorkflowWorkspaceSelectingFilesFromDatasetsEnabled shouldBe true ) diff --git a/config-service/src/main/scala/org/apache/texera/service/resource/ConfigResource.scala b/config-service/src/main/scala/org/apache/texera/service/resource/ConfigResource.scala index 440d7ca7e0..a8887cda92 100644 --- a/config-service/src/main/scala/org/apache/texera/service/resource/ConfigResource.scala +++ b/config-service/src/main/scala/org/apache/texera/service/resource/ConfigResource.scala @@ -27,7 +27,6 @@ import jakarta.ws.rs.{Consumes, GET, POST, PUT, Path, PathParam, Produces} import org.apache.texera.auth.SessionUser import org.apache.texera.common.config.{ ApplicationConfig, - AuthConfig, ComputingUnitConfig, DefaultsConfig, GuiConfig, @@ -80,7 +79,6 @@ class ConfigResource { Map( // flags from the gui.conf "exportExecutionResultEnabled" -> GuiConfig.guiWorkflowWorkspaceExportExecutionResultEnabled, - "autoAttributeCorrectionEnabled" -> GuiConfig.guiWorkflowWorkspaceAutoAttributeCorrectionEnabled, "selectingFilesFromDatasetsEnabled" -> GuiConfig.guiWorkflowWorkspaceSelectingFilesFromDatasetsEnabled, "userPresetEnabled" -> GuiConfig.guiWorkflowWorkspaceUserPresetEnabled, "workflowExecutionsTrackingEnabled" -> GuiConfig.guiWorkflowWorkspaceWorkflowExecutionsTrackingEnabled, @@ -96,9 +94,7 @@ class ConfigResource { "activeTimeInMinutes" -> GuiConfig.guiWorkflowWorkspaceActiveTimeInMinutes, "copilotEnabled" -> GuiConfig.guiWorkflowWorkspaceCopilotEnabled, "limitColumns" -> GuiConfig.guiWorkflowWorkspaceLimitColumns, - "pythonNotebookMigrationEnabled" -> GuiConfig.guiWorkflowWorkspacePythonNotebookMigrationEnabled, - // flags from the auth.conf if needed - "expirationTimeInMinutes" -> AuthConfig.jwtExpirationMinutes + "pythonNotebookMigrationEnabled" -> GuiConfig.guiWorkflowWorkspacePythonNotebookMigrationEnabled ) // Engine configs. diff --git a/frontend/src/app/common/service/gui-config.service.mock.ts b/frontend/src/app/common/service/gui-config.service.mock.ts index 9efbd75a12..93c8eaf0fd 100644 --- a/frontend/src/app/common/service/gui-config.service.mock.ts +++ b/frontend/src/app/common/service/gui-config.service.mock.ts @@ -30,7 +30,6 @@ import { ExecutionMode } from "../type/workflow"; export class MockGuiConfigService { private _config: GuiConfig = { exportExecutionResultEnabled: false, - autoAttributeCorrectionEnabled: false, selectingFilesFromDatasetsEnabled: false, localLogin: true, googleLogin: true, @@ -48,7 +47,6 @@ export class MockGuiConfigService { sharingComputingUnitEnabled: false, operatorConsoleMessageBufferSize: 1000, defaultLocalUser: { username: "", password: "" }, - expirationTimeInMinutes: 2880, activeTimeInMinutes: 15, copilotEnabled: false, limitColumns: 15, diff --git a/frontend/src/app/common/type/gui-config.ts b/frontend/src/app/common/type/gui-config.ts index 28df71b365..5da549acd9 100644 --- a/frontend/src/app/common/type/gui-config.ts +++ b/frontend/src/app/common/type/gui-config.ts @@ -21,7 +21,6 @@ import { ExecutionMode } from "./workflow"; // Please refer to core/config/src/main/resources/gui.conf for the definition of each config item export interface GuiConfig { exportExecutionResultEnabled: boolean; - autoAttributeCorrectionEnabled: boolean; selectingFilesFromDatasetsEnabled: boolean; localLogin: boolean; googleLogin: boolean; @@ -39,7 +38,6 @@ export interface GuiConfig { sharingComputingUnitEnabled: boolean; operatorConsoleMessageBufferSize: number; defaultLocalUser?: { username?: string; password?: string }; - expirationTimeInMinutes: number; activeTimeInMinutes: number; copilotEnabled: boolean; limitColumns: number;
