发布

  • [OPIK-3012] [BE] Add workspace dashboards CRUD functionality (#4058)

    frostbyte_neo 发布于 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)
    下载附件