Add HTTP transport for Kafka-free dashboard testing and screenshots#602
Draft
SimonHeybrock wants to merge 3 commits intomainfrom
Draft
Add HTTP transport for Kafka-free dashboard testing and screenshots#602SimonHeybrock wants to merge 3 commits intomainfrom
SimonHeybrock wants to merge 3 commits intomainfrom
Conversation
Enables running the dashboard with --transport=http to inject data via POST /api/data without requiring a Kafka broker. This simplifies testing, development, and automated screenshot generation. Key additions: - HttpTransport with QueueableMessageSource for receiving da00-encoded data - Tornado endpoint at /api/data accepting base64-encoded da00 payloads - Screenshot script with pre-configured fixtures for reproducible captures - Unit tests for the HTTP transport components Usage: python -m ess.livedata.dashboard.reduction --instrument dummy --transport http python scripts/screenshot_dashboard.py --output-dir screenshots/ Original prompt: "Please do not copy. We need to make this ready in this branch/worktree!" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace the hardcoded inject_screenshot_data() function with a declarative registry system. Data generators are now registered with decorators and automatically matched to workflow configurations. Key changes: - Add FixtureRegistry class with @register decorator for data generators - Load job_numbers from workflow_configs.yaml (single source of truth) - Move data generators to instrument-specific modules (dummy/__init__.py) - Add README.md documenting how to add new screenshot scenarios This eliminates duplication of workflow IDs and job UUIDs across multiple files, and reduces boilerplate when adding new fixtures. Prompt: find out and think about how the added screenshot feature can be made more convenient and simpler to (re)use. I do not want an over-engineered solution though, it needs to stay pragmatic (but has to be clean and reusable).
- Fix Callable type annotation in screenshot_dashboard.py - Fix scipp array syntax in timeseries generator (use dims=['time'] kwarg) - Improve README with complete examples for both 1D and 2D data The timeseries fixture was created by a Haiku agent following the docs, revealing the API syntax gap that is now addressed in the examples.
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.
Still testing/refining this, not intended for review/merge at this point
Enables running the dashboard with --transport=http to inject data via POST /api/data without requiring a Kafka broker. This simplifies testing, development, and automated screenshot generation.
Key additions:
Usage:
python -m ess.livedata.dashboard.reduction --instrument dummy --transport http python scripts/screenshot_dashboard.py --output-dir screenshots/