* feat: Add simplified SigNoz integration using official Helm chart
- Add SigNoz as a Helm dependency with conditional deployment
- Enable SigNoz by default for minikube environments
- Auto-configure OTEL to use internal SigNoz when enabled
- Update Docker Compose to include existing SigNoz stack
- Minimal configuration following the official chart approach
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* Configure local signoz
* do not deploy signoz in ci
* makefile: ensure signoz is available
* feat: Simplify SigNoz integration for improved user experience
- Remove external SigNoz configuration prompts from setup-local script
- Make local SigNoz deployment the default for quickstart experience
- Move external SigNoz configuration to MANUAL_SETUP.md for advanced users
- Streamline README log access section to focus on local SigNoz UI
- Relocate kubectl commands to QUICK_REFERENCE.md as alternative method
- Improve documentation structure for better user onboarding
Addresses feedback from @michaelbrownuc to simplify the integration
before merging.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* Update MANUAL_SETUP.md
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* feat: save CRS artifacts to run-data directories
Add functionality to automatically save POVs, patches, and bundles
received from the CRS into organized run-data-<timestamp> directories
structured by task-id as requested in issue #205.
Changes:
- Add run_data_dir configuration setting to Settings
- Implement save_artifact() utility function with proper base64 decoding
- Modify bundle, patch, and POV endpoints to save artifacts to disk
- Create directory structure: run-data-YYYYMMDDHHMMSS/<task-id>/{povs,patches,bundles}/
- Handle different file types: .json for bundles, .patch for patches, .bin for POVs
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* feat: add hostPath volume for buttercup-ui run data access
- Add run-data-volume hostPath mount to UI deployment for minikube
- Maps container /tmp/buttercup-run-data to host /data/buttercup-run-data
- Enables external access to CRS artifacts (POVs, patches, bundles)
- Falls back to emptyDir for non-minikube environments
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* fix: add BUTTERCUP_UI_RUN_DATA_DIR environment variable to UI deployment
- Set BUTTERCUP_UI_RUN_DATA_DIR to /tmp/buttercup-run-data to match volume mount
- Ensures UI application saves run data artifacts to the correct directory
- Run data will now be accessible outside Kubernetes cluster via hostPath volume
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* fix save-artifact feature
* orchestrator: fix lint
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
Co-authored-by: Michael D Brown <michael.brown@trailofbits.com>
* Fix integration-test run
* use the proper oss-fuzz-aixcc commit to run integration-test
* determine OSS_FUZZ_CONTAINER_ORG at runtime
* use `git diff` in the patcher to create the patch to fix a problem
with patches affecting non-newline terminated files
* fix parsing
* fix program-model lint
* Modify CRS to work on MacOS/ARM
* Use LibUCL for testing
* use example-libpng
* fix linting
* common: fix tests
* Remove just tool completely and migrate all functionality to Makefiles
- Added install-cscope, lint-python, and lint-python-all targets to main Makefile
- Created program-model/Makefile with all justfile functionality
- Removed justfiles from both main and program-model directories
- Updated all documentation to use make commands instead of just
- Removed just installation and checking functions from setup scripts
- All functionality preserved with equivalent make targets
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* Remove duplicate lint-python targets from Makefile
These targets duplicated existing lint and lint-component targets.
Updated CLAUDE.md to reference the correct make targets.
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* Fix remaining references to removed lint-python targets in documentation
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* Fix Makefile: Add missing targets to .PHONY declaration
Added lint, lint-component, clean-local, wait-crs, check-crs,
crs-instance-id, status, and send-integration-task to .PHONY
to ensure they work correctly even if files with those names exist.
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
* ci: remove just references
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
Co-authored-by: Michael D Brown <michael.brown@trailofbits.com>
* add 'status' make command to check deployment status
* unify make commands
* rename `make test` to `make send-integration-task`
* add check-crs message
By default, the bash installer on linux installs to ~/bin and needs to be added to PATH manually.
I'm not sure how it behaves on other platforms, but it might be a smoother experience to rely on
the platform's default package manager to install just to the right place.
Co-authored-by: Michael D Brown <michael.brown@trailofbits.com>
* deployment: just use the value in values.template
* ci: disable integration tests and private settings
* Download trailofbits cscope, not aixcc-finals one
* ci: fix docker login to ghcr.io
* Changes to allow non aixcc deployment
* buttercup-ui: basic skeleton for a CRS interface
* file-server implementation
* add ui to k8s
* other apis
* try to fix k8s
* remove some labels
* fix ui
* small fixes to doc
* ui: support for cloning private repos
* Add setup scripts for easy deployment
* update scripts
* update make/readme
* small adj
* address review
* we need 0.0.0.0 for k8s