-
[OPIK-3012] [BE] Add workspace dashboards CRUD functionality (#4058)
发布于
2025-11-17 15:09:30 +00:00 -
OPIK-3012: [BE] Add workspace dashboards CRUD functionality
-
Revision 2: Use last_updated_at for optimistic locking instead of version column
-
Revision 2: Address GitHub PR review comments
- Add MAX_SLUG_LENGTH constant (150) to match database constraint
- Remove DROP TABLE IF EXISTS from main migration changeset
- Make ObjectMapper static final in JsonNodeColumnMapper for performance
- Add retry logic with proper for loop for slug race conditions
- Remove unused podamFactory field from DashboardResourceClient
- Revision 2: Address PR review comments
- Remove optimistic locking (lastUpdatedAt from DashboardUpdate)
- Consolidate update + refresh into single service method that returns Dashboard
- Remove retry logic from update method
- Rename 'search' query parameter to 'name' with proper documentation
- Change ORDER BY from last_updated_at to id DESC
- Replace ObjectMapper with JsonUtils in JsonNodeColumnMapper and test client
- Remove unnecessary @NonNull annotations from SlugUtils
- Update API documentation to clarify partial update support
- Revision 3: Remove optimistic locking test
- Removed 'updateDashboardWithTimestampCheck' test that relied on lastUpdatedAt field
- All 20 remaining tests pass successfully
- Revision 4: Remove workspaceId from API path
- Changed path from /v1/private/workspaces/{workspaceId}/dashboards to /v1/private/dashboards
- Removed unused workspaceIdPath parameters from all endpoint methods
- Updated test client RESOURCE_PATH constant and all API calls
- WorkspaceId is now resolved exclusively from authentication context (RequestContext)
- All 20 tests pass successfully
- OPIK-3012: Address PR review comments (PATCH, DAO, slug, JSON utils)
下载附件
-