Contributing to Dethernety
June 2, 2026 · View on GitHub
By participating in this project, you agree to follow our Code of Conduct.
This guide covers the development setup, coding conventions, and pull request process.
Contributor License Agreement
Before your first pull request can be merged, you must sign our Contributor License Agreement. The CLA bot will prompt you automatically when you open a PR.
Development Setup
Prerequisites
- Node.js 18+
- pnpm 9.13+
- A Bolt/Cypher-compatible database (Neo4j or Memgraph)
Getting Started
git clone https://github.com/dether-net/dethernety-oss.git
cd dethernety-oss
pnpm install
Running Locally
# Start all development servers
pnpm dev
# Or start individually
cd apps/dt-ws && pnpm dev # Backend
cd apps/dt-ui && pnpm dev # Frontend
Running Tests
pnpm test # All tests
pnpm lint # Linting
pnpm format # Format code with Prettier
Code Style
- TypeScript for all frontend and backend code
- Prettier for formatting (run
pnpm formatbefore committing) - ESLint for linting (run
pnpm lint) - Use the shared configurations in
packages/eslint-config/andpackages/typescript-config/
Pull Request Process
- Fork the repository and create a feature branch from
main - Write your changes following the code style guidelines
- Add tests for new functionality where applicable
- Run checks locally:
pnpm lint && pnpm build && pnpm test - Commit with a clear, descriptive message
- Open a pull request against
main - Sign the CLA when prompted by the bot
- Respond to review feedback — maintainers will review within a few business days
Commit Messages
Write clear commit messages that explain why the change was made:
Add exposure scoring to DataFlow nodes
DataFlow nodes previously had no exposure tracking. This adds HAS_EXPOSURE
relationships and score propagation so that data flow risks are visible
in the model overview.
What Makes a Good PR
- Focused on a single concern
- Includes tests for new behavior
- Passes all CI checks (lint, build, test)
- Has a clear description of what changed and why
Module Development
To create a custom module, see the Module Development Guide. Key points:
- Extend the base classes in
packages/dt-module/ - Follow the structure of
modules/dethernety-general/as a reference - Include a
module.jsonmanifest with metadata - Test module loading locally before submitting
Reporting Issues
- Bugs: Use the bug report template
- Feature requests: Use the feature request template
- Security issues: See SECURITY.md — do not open public issues
Questions
For general questions and discussions, use GitHub Discussions.