Contributing to SentriFlow
Thank you for your interest in contributing to SentriFlow! We welcome contributions from the community.
For the complete and authoritative contribution guidelines, including the full Contributor License Agreement, see CONTRIBUTING.md on GitHub.
Quick Start for Contributors
Fork and Clone
git clone https://github.com/YOUR_USERNAME/sentriflow.git
cd sentriflowInstall Dependencies
bun installCreate a Feature Branch
git checkout -b feature/your-feature-nameMake Your Changes
Follow the existing code patterns and TypeScript strict mode requirements.
Run Tests
bun test
bun run type-checkSubmit a Pull Request
Push your changes and open a PR against main.
Contributor License Agreement (CLA)
Before your contribution can be accepted, you must agree to our CLA. By submitting a pull request, you agree to the terms outlined in the CONTRIBUTING.md .
Include the following in your PR description:
I have read and agree to the SentriFlow Contributor License Agreement.Why a CLA?
SentriFlow uses an Open Core business model:
- Your code stays open source - All code in the repository remains Apache-2.0 licensed
- Contributions fund development - Revenue from commercial licenses funds continued open-source development
- Transparent intent - We’re upfront about this model
Ways to Contribute
Reporting Issues
- Search existing issues before creating a new one
- Use a clear, descriptive title
- Include steps to reproduce the issue
- Specify the vendor/platform if relevant
Adding New Rules
- Place rules in the appropriate vendor file under
packages/rules-default/src/ - Follow the rule ID format:
[A-Z][A-Z0-9_-]{2,49}(e.g.,SEC-001,NET-TRUNK-001) - Include metadata:
severity,remediation - Add test fixtures in
packages/rules-default/test/fixtures/
See Rule Authoring Guide for detailed instructions.
Adding Vendor Support
- Create vendor schema in
packages/core/src/parser/ - Add helper functions in
packages/core/src/helpers/<vendor>/ - Add vendor identifier to the supported vendors list
- Include test configurations
Code Style
- TypeScript strict mode is enabled
- Use descriptive variable and function names
- Follow existing patterns in the codebase
- Run
bun run type-checkbefore submitting
Questions?
Open an issue with the question label on GitHub if you need clarification.
Last updated on