-
[OPIK-1763]: Add workspace-level timeout configuration for trace threads (#2792)
发布于
2025-07-22 16:12:11 +00:00 - feat: Add workspace-level timeout configuration for trace threads
- Add new WorkspaceConfiguration API with ISO-8601 duration support
- Create REST endpoints for workspace configuration CRUD operations (GET/PUT/DELETE)
- Implement MySQL storage for workspace configurations with Liquibase migration
- Configure Jackson to properly handle ISO-8601 duration format with custom deserializer
- Update ClickHouse queries to use workspace-specific timeouts with MySQL integration
- Add comprehensive validation for duration fields (min 1 second, max 7 days)
Testing:
- Valid ISO-8601 duration strings: PT1S, PT30M, PT1H, P1D, P7D
- Invalid duration validation: sub-second precision (PT0.5S), exceeding max (P8D, P30D)
- Malformed ISO-8601 strings: empty string rejection, missing PT prefix
- Null timeout handling: accepts null values for default behavior
- CRUD operations: GET returns 404 for missing configs, PUT upserts correctly
- DELETE operations: removes existing configs, returns 404 for non-existent
- Duration object validation: @DurationValidation annotation enforcement
- Jackson serialization: proper ISO-8601 format in API responses
- OPIK-1763: Migrate workspace configuration from MySQL to ClickHouse
- Move workspace_configurations table from MySQL to ClickHouse for efficient joins with trace_threads
- Update WorkspaceConfigurationDAO and Service to use ClickHouse R2DBC instead of JDBI3
- Modify TraceThreadDAO to join with workspace_configurations for custom timeout queries
- Update API behavior: upsert returns 204 No Content, delete returns 204 for both existing/non-existing
- Update tests to expect 204 for upsert operations and verify with separate GET calls
- Add test for workspace-level custom timeout configuration in TraceThreadsClosingJobTest
- Remove MySQL migration and replace with ClickHouse migration script
- OPIK-1763: Add empty lines at end of files and improve ClickHouse migration
- Add empty lines at end of WorkspaceConfigurationDAO.java and WorkspaceConfigurationService.java per coding standards
- Improve ClickHouse migration: use DateTime64(9, 'UTC') for created_at precision consistency
- Clean up unnecessary index comments in migration file
-
OPIK-1763: Fix query
-
OPIK-1763: Address PR feedback
-
OPIK-1763: Fix code review comments
下载附件