Repository navigation
feat(work-management): implement configurable kanban boards and cards… - #71
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the configurable Kanban subsystem for EventFlow's Work Management bounded context.
This PR introduces workspace/project-scoped boards, independently managed columns, customizable workflow mappings, persistent card ordering, WIP limits, movement history, filtering, pagination, RBAC, idempotency, and concurrency protection.
The implementation preserves the existing approval-only WorkItem creation invariant.
Related issue: #8
Status: Ready for review with one architectural reservation.
Changes
Board Management
Configurable Columns
Card Movement and Ordering
If-Match.RANK_SPACE_EXHAUSTEDhandling.WIP Enforcement
Movement History
Filtering and Pagination
Security
board:manageandboard:readpermissions.API Operations
Added or completed:
createBoardlistBoardsgetBoardupdateBoardcreateBoardColumnlistBoardColumnsupdateBoardColumndeleteBoardColumnlistBoardCardsgetBoardCardmoveBoardCardlistCardMovementslistWorkItemsgetWorkItemUpdated contracts:
contracts/openapi/work-management.yamlcontracts/schemas/work_management.yamlDatabase Migration
Added:
0008_kanban_boards_columns_and_movementsChanges include:
board_columnspersistence.card_movementspersistence.Migration upgrade and downgrade were verified.
Tests
Executed using
jsr-testrunnerwith PostgreSQL.Validation
git diff --checkpassed.Architecture and Known Limitations
Direct Card Creation
Status: BLOCKED BY ARCHITECTURE
Issue #8 allows optional direct Card creation, but the accepted architecture requires every BoardCard to reference a WorkItem created through an authorized approval workflow.
No direct Card or WorkItem creation endpoint was introduced.
This limitation is documented in ADR-008 Amendment A-03.
An approved ADR and compatible contract amendment are required before implementing this alternative creation path.
Idempotency Response Replay
Repository-level idempotency is supported.
However, replaying an identical request does not necessarily reproduce the original HTTP response body exactly.
This remains a known limitation.
Rank Exhaustion
Card ordering uses variable-length base-62 fractional ranks.
If the available rank space is exhausted, the operation returns:
RANK_SPACE_EXHAUSTEDAutomatic rank rebalancing is not implemented.
Column Identifier
target_column_iduses the existing string-based column key rather than a UUID.This preserves compatibility with the established implementation.
Acceptance Criteria
Files Changed
23 files changed, 4,213 insertions, 9 deletions.
Key additions:
services/work-management/src/eventflow_work_management/api/board_routes.pyservices/work-management/src/eventflow_work_management/repositories/board_column_repository.pyservices/work-management/src/eventflow_work_management/migrations/versions/0008_kanban_boards_columns_and_movements.pyReview Focus
Please review:
Git Information
Branch:
feat/8-kanban-boards-custom-workflowsCommit:
4648da8Commit message:
feat(work-management): implement configurable kanban boards and cards (#8)Local verification: 292 passed, 0 failed, 1 skipped.
Working state: Committed locally; not pushed or merged.
Final Status
READY FOR PR WITH RESERVATIONS
The configurable Kanban subsystem is implemented and locally verified.
Direct Card/WorkItem creation remains blocked pending architectural approval. Remote CI verification is pending.