Skip to content

Remove the deprecated project feature from the backend and database schema #7461

Description

@aglinxinyuan

Task Summary

Remove the deprecated project feature from the backend and the database schema, following the consensus in #5172. The frontend half is tracked separately.

Scope

Area What goes
REST resources ProjectResource, PublicProjectResource, ProjectAccessResource and their three Dropwizard registrations in TexeraWebApplication
Search ProjectSearchQueryBuilder, PROJECT_RESOURCE_TYPE, the project arms of DashboardResource, and the 4 project slots of UnifiedResourceSchema (24 → 20)
Workflow coupling WorkflowResource project association on create/duplicate/list, DashboardWorkflow.projectIDs, WorkflowIDs.pid
Config gui.tabs.projects_enabled and GUI_TABS_PROJECTS_ENABLED in default.conf
Schema the four tables, plus a sql/updates/32.sql migration and its changelog entry

Tables dropped (in FK-dependency order):

public_project ──┐
project_user_access ──┼──> project
workflow_of_project ──┘

privilege_enum stays — it is shared with workflow_user_access, dataset_user_access and computing_unit_user_access.

Behaviour changes worth reviewing. Two non-project code paths 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

So a workflow reachable only through project sharing becomes inaccessible and drops out of dashboard search. That is the intended consequence of removing the feature — notebook-migration-service already documents these post-removal semantics — but it should be an explicit review decision rather than a silent side effect.

Note on jOOQ. Generated sources are not committed (common/dao/.gitignore); they are produced by sbt jooqGenerate against the live database. The DDL change and the Scala change therefore have to land together, and the migration must be applied before regenerating.

Task Type

  • Refactor / Cleanup
  • DevOps / Deployment / CI
  • Testing / QA
  • Documentation
  • Performance
  • Other

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions