Skip to content

[#73188] Remove EE guards from boards#22376

Open
myabc wants to merge 1 commit intofeature/69139-sprint-task-boardsfrom
feature/73188-remove-ee-guards
Open

[#73188] Remove EE guards from boards#22376
myabc wants to merge 1 commit intofeature/69139-sprint-task-boardsfrom
feature/73188-remove-ee-guards

Conversation

@myabc
Copy link
Contributor

@myabc myabc commented Mar 17, 2026

Important

This PR is based off #22086. Please review/merge that PR first.

Ticket

https://community.openproject.org/wp/73188

What are you trying to accomplish?

Make boards fully available in Community Edition by removing the remaining Boards-specific EE guards.

This changes the boards experience so action boards are no longer disabled or hidden behind an enterprise banner when no board_view EE token is present. It also updates the boards creation flow and onboarding coverage to reflect that action boards are now available by default in CE.

There are no route, API, permission, or schema changes in this PR. The existing board_view project module and the show_board_views / manage_board_views permissions stay unchanged.

What approach did you choose and why?

I treated this as a frontend/runtime availability change rather than a permissions rewrite.

Boards were already modeled as a normal project module with normal permissions on the backend. The remaining CE-vs-EE split was in the frontend behavior and the boards feature specs:

  • action board types were disabled in the create flow
  • non-free boards rendered an enterprise banner instead of the lists
  • onboarding branched on EE token presence
  • feature specs encoded those old CE/EE expectations

So I removed the board_view EE checks from the Angular boards UI and aligned the affected feature specs with the new default behavior.

I deliberately did not broaden this into a full rename sweep of board_view / "Advanced Boards" wording or static docs links. This PR is limited to removing the runtime guards and the boards-specific upsell behavior.

Merge checklist

  • Added/updated tests
  • Tested major browsers (Chrome, Firefox, Edge, ...)

@github-actions
Copy link

github-actions bot commented Mar 17, 2026

Deploying openproject with PullPreview

Field Value
Latest commit 9680d2f
Job deploy
Status ✅ Deploy successful
Preview URL https://pr-22376-73188-remove-ee-g-ip-46-224-35-249.my.opf.run:443

View logs

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes Boards fully available in Community Edition by removing remaining frontend/runtime Enterprise Edition (EE) guards and aligning onboarding + feature specs with the new default behavior (no enterprise banner/disabled board types when no board_view token is present).

Changes:

  • Removes EE-based availability gating in the Angular boards UI (lists rendering and action-type registry).
  • Updates onboarding tour logic and onboarding feature specs to always follow the “Kanban/enterprise” board tour path.
  • Updates boards feature specs to assert all board types are enabled and action boards render without an enterprise banner.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
modules/boards/spec/features/support/onboarding_steps.rb Simplifies board onboarding assertions to the Kanban step only.
modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb Removes EE/CE branching in the spec and updates setup accordingly.
modules/boards/spec/features/boards_global_create_spec.rb Removes EE requirement and asserts all board types are enabled in the global create flow.
modules/boards/spec/features/board_enterprise_spec.rb Reworks spec to validate boards are available without enterprise banners.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts Removes banner/availability checks so boards render consistently.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html Removes enterprise banner and conditional rendering that previously hid non-free boards.
frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts Removes EE-based disabling of action board tiles.
frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts Removes EE token branching and always routes onboarding through the boards tour when demo data is available.

You can also share your feedback on Copilot code review. Take the survey.

@myabc myabc force-pushed the feature/73188-remove-ee-guards branch from 2b7e5a1 to 379c120 Compare March 17, 2026 03:46
@myabc myabc requested a review from Copilot March 17, 2026 03:50
@myabc myabc force-pushed the feature/73188-remove-ee-guards branch from 8f09353 to c1751b3 Compare March 17, 2026 03:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the remaining Enterprise Edition (EE) runtime guards around boards so that action boards are fully available in Community Edition (CE), and updates onboarding + feature specs to reflect the new default behavior.

Changes:

  • Removed EE gating/enterprise banner behavior in the boards UI (list rendering and board type availability).
  • Removed backend EE restriction on board type creation and updated board type helper defaults.
  • Updated onboarding flow and boards feature specs to no longer branch on board_view EE token presence.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
modules/boards/spec/features/support/onboarding_steps.rb Removes EE-token branching in board onboarding step helper.
modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb Aligns demo-project onboarding spec to always expect kanban/action-board onboarding path.
modules/boards/spec/features/boards_sorting_spec.rb Drops with_ee: %i[board_view] requirement for sorting spec.
modules/boards/spec/features/boards_global_create_spec.rb Updates global-create specs to expect all board types enabled and no enterprise banner.
modules/boards/spec/features/board_update_spec.rb Drops with_ee: %i[board_view] requirement for update spec.
modules/boards/spec/features/board_reference_work_package_spec.rb Drops with_ee: %i[board_view] requirement for reference spec.
modules/boards/spec/features/board_overview_spec.rb Drops with_ee: %i[board_view] requirement for overview spec.
modules/boards/spec/features/board_navigation_spec.rb Drops with_ee: %i[board_view] requirement for navigation spec.
modules/boards/spec/features/board_management_spec.rb Drops with_ee: %i[board_view] requirement for management spec.
modules/boards/spec/features/board_index_spec.rb Drops with_ee: %i[board_view] requirement for index spec.
modules/boards/spec/features/board_highlighting_spec.rb Drops with_ee: %i[board_view] requirement for highlighting spec.
modules/boards/spec/features/board_enterprise_spec.rb Reworks enterprise-focused spec into a general availability spec (no banner, all types enabled).
modules/boards/spec/features/board_conflicts_spec.rb Drops with_ee: %i[board_view] requirement for conflicts spec.
modules/boards/spec/features/action_boards/version_board_spec.rb Drops with_ee: %i[board_view] requirement for version action board spec.
modules/boards/spec/features/action_boards/subtasks_board_spec.rb Drops with_ee: %i[board_view] requirement for subtasks action board spec.
modules/boards/spec/features/action_boards/subproject_board_spec.rb Drops with_ee: %i[board_view] requirement for subproject action board spec.
modules/boards/spec/features/action_boards/status_type_moving_board_spec.rb Drops with_ee: %i[board_view] requirement for status moving action board spec.
modules/boards/spec/features/action_boards/status_board_spec.rb Drops with_ee: %i[board_view] requirement for status action board spec.
modules/boards/spec/features/action_boards/custom_field_filters_spec.rb Drops with_ee: %i[board_view] requirement for custom-field filters spec.
modules/boards/spec/features/action_boards/assignee_board_spec.rb Drops with_ee: %i[board_view] requirement for assignee action board spec.
modules/boards/app/views/boards/boards/_form.html.erb Removes enterprise banner wrapper around board type selection; keeps tile UI.
modules/boards/app/helpers/boards_helper.rb Makes all board types enabled by default; adjusts global-create detection logic.
modules/boards/app/controllers/boards/boards_controller.rb Removes server-side restriction preventing non-basic boards without EE token; uses params.expect for strong params.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts Removes EE availability checks and banner service usage from board list container.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html Always renders board lists (no enterprise-banner-only mode).
frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts Removes EE-based disabling of action-board tiles.
frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts Removes EE feature checks; always uses the “enterprise” (kanban) board tour variant when boards demo data is present.

You can also share your feedback on Copilot code review. Take the survey.

@myabc myabc force-pushed the feature/73188-remove-ee-guards branch from 9d4e601 to 3e5c46f Compare March 17, 2026 03:57
@myabc myabc requested a review from Copilot March 17, 2026 03:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes Boards fully available in Community Edition by removing remaining Enterprise Edition runtime guards in both the boards UI and the onboarding tour, and aligns feature specs with the new default behavior.

Changes:

  • Remove EE gating/upsell behavior for action boards in the boards UI (creation flow + board rendering).
  • Update onboarding tour logic and feature specs to always cover the kanban/action-board experience.
  • Adjust backend board type attributes and controller flow to no longer restrict non-basic board types by EE token.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated no comments.

Show a summary per file
File Description
modules/boards/spec/features/support/onboarding_steps.rb Simplifies board onboarding step assertions to always expect the kanban/action-board step.
modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb Removes EE/CE branching and updates setup + expectations for the unified onboarding flow.
modules/boards/spec/features/boards_sorting_spec.rb Drops with_ee tag so sorting is tested in CE-equivalent context.
modules/boards/spec/features/boards_global_create_spec.rb Updates global board creation expectations: all board types enabled and no enterprise banner.
modules/boards/spec/features/board_update_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_reference_work_package_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_overview_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_navigation_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_management_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_index_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_highlighting_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/board_enterprise_spec.rb Reframes spec to assert boards/action boards render without enterprise banner and all types enabled.
modules/boards/spec/features/board_conflicts_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/version_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/subtasks_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/subproject_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/status_type_moving_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/status_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/custom_field_filters_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/spec/features/action_boards/assignee_board_spec.rb Drops with_ee tag to reflect CE availability.
modules/boards/app/views/boards/boards/_form.html.erb Removes enterprise banner wrapper around board type selection and keeps all tiles selectable.
modules/boards/app/helpers/boards_helper.rb Removes EnterpriseToken-based disabling of board types; adjusts global-create context detection.
modules/boards/app/controllers/boards/boards_controller.rb Removes server-side restriction of action-board creation; updates strong params to params.expect.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts Removes enterprise availability checks and banner service dependency.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html Removes enterprise banner rendering and always renders board lists.
frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts Removes EE-based disabling of action board tile entries.
frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts Removes EE feature-flag branching; always uses action-board onboarding steps when boards demo data exists.
Comments suppressed due to low confidence (1)

frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts:108

  • apiv3Service: ApiV3Service is injected as a constructor parameter but never referenced in this component (only apiV3Service is used). Consider removing the unused injection/property to avoid confusion and potential unused-variable linting.
    readonly apiV3Service:ApiV3Service,
    readonly Boards:BoardService,
    readonly boardListCrossSelectionService:BoardListCrossSelectionService,
    readonly wpStatesInitialization:WorkPackageStatesInitializationService,
    readonly Drag:DragAndDropService,
    readonly apiv3Service:ApiV3Service,
    readonly QueryUpdated:QueryUpdatedService,

You can also share your feedback on Copilot code review. Take the survey.

@myabc myabc marked this pull request as ready for review March 17, 2026 21:59
@myabc myabc requested review from EinLama, dombesz and ulferts March 18, 2026 07:43
Copy link
Contributor

@EinLama EinLama left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nicely done! 👏

def board_types
[
build_board_type_attributes("basic", "lists", false),
build_board_type_attributes("basic", "lists", disabled: false),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last argument does not serve a purpose anymore. It made sense before when the default value was a condition. Now that it is always false, we can just remove it from the call here.

Suggested change
build_board_type_attributes("basic", "lists", disabled: false),
build_board_type_attributes("basic", "lists"),

@ulferts
Copy link
Contributor

ulferts commented Mar 20, 2026

Discussions about this are still ongoing.

@myabc myabc force-pushed the feature/69139-sprint-task-boards branch from 39b018e to e6a6ba0 Compare March 22, 2026 04:32
@ulferts
Copy link
Contributor

ulferts commented Mar 23, 2026

Decision has been reached to release all the action boards.

Make action boards available in Community Edition by removing
board_view-based frontend and create-form gating, and align boards
feature coverage with the new default behavior.

https://community.openproject.org/wp/73188
@myabc myabc force-pushed the feature/73188-remove-ee-guards branch from 3e5c46f to 9680d2f Compare March 23, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants