The GitHub Actions job "Required Checks" on texera.git/main has failed. Run started by GitHub user github-merge-queue[bot] (triggered by github-merge-queue[bot]).
Head commit for run: f34905e4325fcaeb515c623e75223c2e943ad3f6 / Xinyuan Lin <[email protected]> feat(amber): remove the deprecated project feature and its tables (#7464) ### What changes were proposed in this PR? Removes the deprecated **project** feature from the backend and drops its four tables, completing the removal agreed in #5172. **8 files deleted, 21 edited, 1 added (+153 / −2012).** | Area | What went | | --- | --- | | REST | `ProjectResource`, `PublicProjectResource`, `ProjectAccessResource` + their three `jersey.register` lines in `TexeraWebApplication` | | Search | `ProjectSearchQueryBuilder`, `PROJECT_RESOURCE_TYPE`, both project arms of `DashboardResource`, and 4 of the 27 `UnifiedResourceSchema` slots | | Workflow coupling | project association on create/duplicate/list, `DashboardWorkflow.projectIDs`, `WorkflowIDs.pid`, `Record11` → `Record10` | | Config | `gui.tabs.projects_enabled` / `GUI_TABS_PROJECTS_ENABLED` | | Schema | 4 tables, plus `sql/updates/45.sql` and its changelog entry | ``` public_project ──────┐ project_user_access ─┼──> project all four dropped workflow_of_project ─┘ ``` `privilege_enum` stays — it is shared with `workflow_user_access`, `dataset_user_access` and `computing_unit_user_access`. **Two behaviour changes reviewers should look at.** Both are non-project code paths that read the project tables today: | Site | Before | After | | --- | --- | --- | | `WorkflowAccessResource.getPrivilege` | falls back to `PROJECT_USER_ACCESS` when there is no direct grant | only a direct `WORKFLOW_USER_ACCESS` grant counts | | `WorkflowSearchQueryBuilder` private-access condition | `WORKFLOW_USER_ACCESS.UID = uid OR PROJECT_USER_ACCESS.UID IS NOT NULL` | `WORKFLOW_USER_ACCESS.UID = uid` | ``` Before: user ─▸ project share ─▸ workflow (readable, appears in search) After: user ─X─ workflow (inaccessible, absent from search) ``` A workflow reachable *only* through a project share becomes inaccessible to that user. That is the intended consequence of dropping the feature — `notebook-migration-service` already documents exactly these post-removal semantics — but it is called out in `45.sql` so operators can copy those grants into `workflow_user_access` before migrating. **jOOQ.** Generated sources are not committed (`common/dao/.gitignore`); `sbt jooqGenerate` reflects the live database. So the DDL change and the Scala change have to land together, and the migration must be applied before regenerating — otherwise the old classes reappear and stale references still compile. `sql/updates/02.sql` is left untouched: it is already applied, and editing it would break its liquibase checksum. `bin/k8s/files/texera_ddl.sql` is a symlink to `sql/texera_ddl.sql`, so the helm chart is covered automatically. ### Any related issues, documentation, discussions? Closes #7461 Removal agreed in #5172; the frontend half is #7463 (issue #7460). **Sequencing constraint: satisfied.** #7463 had to land first, and it did — merged 2026-08-29 as `b67b1c99ab`. Both paths that would have broken are gone from `main`: | Path | Status on `main` | | --- | --- | | Admin Settings PUT of `projects_enabled` (400 on save, 404 on reset) | gone — `projects_enabled` no longer appears anywhere in `frontend/src` | | Search sending `resourceType=project` (500 via `case _ => throw`) | gone — the Project chip and the `EntityType.Project` member were removed | So this PR is now safe to land on its own. ### How was this PR tested? Existing tests. The `/search API` suite in `WorkflowResourceSpec` seeded projects and asserted counts that included them, so those eight tests were rewritten workflow-only with adjusted counts; `UnifiedResourceSchemaSpec`'s pinned projection arity went 27 → 23. ```bash sbt "WorkflowExecutionService/Test/compile" "ConfigService/Test/compile" "DAO/Test/compile" "NotebookMigrationService/Test/compile" sbt scalafmtCheckAll "scalafixAll --check" sbt "WorkflowExecutionService/testOnly *WorkflowResourceSpec *UnifiedResourceSchemaSpec *WorkflowSearchQueryBuilderSpec *HubResourceSpec *DashboardResourceSpec *WorkflowAccessResourceSpec" "ConfigService/testOnly *ConfigResourceSpec *DefaultsConfigSpec" "DAO/test" ``` | Check | Result | | --- | --- | | compile (amber, config-service, dao, notebook-migration) | clean | | `scalafmtCheckAll` + `scalafixAll --check` | clean | | specs | 9 suites, **197 tests passed**, 0 failed | The spec run is the meaningful check on the schema change: `MockTexeraDB` bootstraps embedded Postgres from the **edited** `texera_ddl.sql`, so those 197 tests all ran against a database with no project tables. Any surviving query against a dropped table would have failed there. `MockTexeraDB`'s hard-coded fulltext-index block was updated in lockstep — it referenced `ON project` and would otherwise take out every DAO-backed suite in the repo. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 5) Report URL: https://github.com/apache/texera/actions/runs/33695427018 With regards, GitHub Actions via GitBox
