Thank you for your interest in contributing to OpenUBA! This document provides guidelines and information for contributors.
All contributions to OpenUBA must be signed off under the Developer Certificate of Origin (DCO). By signing off, you certify that you wrote the contribution or otherwise have the right to submit it under the project's license.
Sign off your commits by adding Signed-off-by to your commit message:
git commit -s -m "Your commit message"
Or manually add to your commit message:
Signed-off-by: Your Name <your.email@example.com>
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/OpenUBA.git cd OpenUBA - Set up development environment:
make dev-hybrid # Backend local + infra in Kind cluster - Create a branch for your changes:
git checkout -b feature/your-feature-name
- Python 3.11+
- Docker & Docker Compose
- Kind (Kubernetes in Docker)
- Node.js 18+ (for frontend)
- Make
pip install -r requirements.txt
python -m uvicorn core.api:app --reload --port 8000cd interface
npm install
npm run devmake test # All tests
make test-backend # Backend only
make test-models # Model pipeline testsLook for issues labeled good first issue in the GitHub issue tracker.
- New ML models for the Model Library
- Data source integrations (new loaders beyond ES and Spark)
- Documentation improvements
- Test coverage expansion
- Frontend UX improvements
- Kubernetes operator development
- CNCF integration (Falco, OpenTelemetry, Prometheus)
- Ensure your code follows the project's coding style
- Update documentation if your changes affect user-facing behavior
- Add tests for new functionality
- Ensure all tests pass (
make test) - Sign off all commits (DCO)
- Submit a pull request against the
masterbranch - Describe your changes clearly in the PR description
- Link to any related issues
- All PRs require at least one maintainer review
- CI must pass before merging
- Maintainers may request changes or improvements
- Use GitHub Issues to report bugs
- Include: steps to reproduce, expected behavior, actual behavior, environment details
- Check existing issues before creating a new one
- Open a GitHub Issue with the
enhancementlabel - Describe the use case and expected behavior
- Be open to discussion about implementation approach
All participants in the OpenUBA community are expected to follow the Code of Conduct.
By contributing to OpenUBA, you agree that your contributions will be licensed under the project's license.