- Add UpdateField enum for unambiguous sharing parameter updates
- Replace Option<Option<T>> pattern with the more explicit enum
- Update metrics, dashboards, and collections sharing handlers
- Add validation for expiry dates and empty passwords
- Add comprehensive tests for public sharing updates
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modified update_metric_handler to properly include verification status
- Created reusable MetricFileChangeset struct to simplify updates
- Added unit test for verification field in request
- Implemented comprehensive integration tests for status updates
- Test multiple scenarios: authorized update, unauthorized, null values
Fixes BUS-1069
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add bulk update functionality for metric verification status, allowing multiple
metrics to be updated in a single API call with efficient batch processing. This
implementation includes:
- New handler for processing bulk updates with concurrent execution
- Batch processing with customizable batch size (default 50)
- Comprehensive error handling with client-friendly error codes
- REST endpoint with request validation and rate limiting
- Unit and integration tests for success and error cases
- Performance testing with different batch sizes
Addresses ticket BUS-1070.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated the restoration message format to use response_messages instead of request_message
- Added proper message structure with both file and text messages in a single response
- Updated integration tests to match the new format
- Set empty request_message as required
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented the ability to restore previous versions of metrics and dashboards through the chat interface. Key changes include:
- Created restore_chat_handler.rs to handle the restoration logic
- Added a new REST endpoint at PUT /chats/{id}/restore
- Updated module exports for the new functionality
- Added comprehensive integration tests
- Updated PRDs with implementation details
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create migration for metric_files_to_dashboard_files association table
- Add MetricFileToDashboardFile model to database/models.rs
- Implement functions to extract metric IDs from dashboards
- Add logic to maintain associations when dashboards are updated
- Add logic to create associations when dashboards are created
- Create integration test for the feature
- Create PRD for the metric-dashboard association feature
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create migration for metric_files_to_dashboard_files association table
- Add MetricFileToDashboardFile model to database/models.rs
- Implement functions to extract metric IDs from dashboards
- Add logic to maintain associations when dashboards are updated
- Add logic to create associations when dashboards are created
- Create integration test for the feature
- Create PRD for the metric-dashboard association feature
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Integrated delete dashboard endpoint with existing update endpoint:
- Fixed merge conflicts in dashboard project plan
- Combined routes in mod.rs to support GET, PUT, and DELETE endpoints
- Organized test module imports alphabetically
- Added handler for creating chat sharing permissions
- Created REST endpoint for POST /chats/:id/sharing
- Added fixtures and test setup for chats
- Created integration tests for the sharing endpoint
- Updated PRD to mark implementation as complete
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>