Thanks for your interest in contributing! AetherGuard is a multi-service project spanning Rust, Python, and TypeScript — there's something for everyone.
- Code of Conduct
- Getting Started
- Project Structure
- How to Contribute
- Development Setup
- Coding Standards
- Testing
- Submitting Changes
- Issue Guidelines
- Areas We Need Help
This project follows the Code of Conduct. By participating, you agree to uphold a welcoming and respectful environment for everyone.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/aetherguard-ai.git cd aetherguard-ai - Add the upstream remote:
git remote add upstream https://github.com/maamir/AetherGuardAI.git
- Create a branch for your work:
git checkout -b feat/your-feature-name
aetherguard/
├── proxy-engine/ # Rust — high-performance request proxy (port 8080)
├── ml-services/ # Python — ML threat detection service (port 8001)
├── backend-api/ # Python — auth, tenants, policies, analytics (port 8081)
├── web-portal/ # React/TypeScript — end-user portal (port 3000)
├── admin-portal/ # React/TypeScript — admin dashboard (port 3001)
├── nodejs-sdk/ # TypeScript — official Node.js SDK
├── aws-infrastructure/ # AWS CDK — cloud infrastructure stacks
├── lambda/ # Python — AWS Lambda control plane functions
└── docs/ # Documentation
Each service is independently buildable and testable. You don't need to run the full stack to contribute to a single service.
Before opening an issue, please:
- Search existing issues to avoid duplicates
- Include the service name in the title (e.g.,
[ml-services] Hallucination detector returns false positives) - Provide steps to reproduce, expected vs actual behavior, and your environment
Open a GitHub Discussion first for larger ideas. For small improvements, a GitHub issue is fine.
- Comment on the issue to let others know you're working on it
- Follow the Development Setup below
- Write tests for your changes
- Submit a pull request referencing the issue
- Docker 20.10+ and Docker Compose 2.0+
- Rust 1.70+ (for proxy-engine)
- Python 3.9+ (for ml-services and backend-api)
- Node.js 18+ (for web-portal, admin-portal, nodejs-sdk)
- 8GB+ RAM (16GB recommended for running ML models)
cp .env.example .env
docker compose up --buildServices will be available at:
- Proxy Engine: http://localhost:8080
- ML Services: http://localhost:8001
- Backend API: http://localhost:8081
- Web Portal: http://localhost:3000
- Admin Portal: http://localhost:3001
Proxy Engine (Rust):
cd proxy-engine
cargo build
cargo runML Services (Python):
cd ml-services
pip install -r requirements.txt
uvicorn main:app --reload --port 8001Backend API (Python):
cd backend-api
pip install -r requirements.txt
uvicorn main:app --reload --port 8081Node.js SDK:
cd nodejs-sdk
npm install
npm run buildAdmin Portal:
cd admin-portal
npm install
npm run dev- Follow standard Rust idioms — run
cargo fmtbefore committing - Use
cargo clippyand resolve all warnings - Prefer
async/awaitwith Tokio for I/O operations - Document public APIs with
///doc comments
- Follow PEP 8
- Use type hints throughout
- Format with
blackand lint withruff:black . ruff check .
- Use Pydantic models for request/response validation
- Keep detector modules self-contained under
detectors/
- Strict TypeScript — no
anyunless absolutely necessary - Format with Prettier and lint with ESLint:
npm run lint npm run format
- Use functional React components with hooks
- Keep AWS CDK constructs focused and composable
- Keep commits atomic and descriptive (
feat:,fix:,docs:,test:,refactor:) - No secrets, credentials, or PII in code or tests — use placeholders
- Update relevant documentation when changing behavior
cd proxy-engine
cargo testcd ml-services
pytest tests/cd backend-api
pytest tests/cd nodejs-sdk
npm test# Requires full stack running via Docker Compose
./tests/test-backend-api.sh
python tests/test_advanced_features.pyAll PRs must pass existing tests. New features should include tests covering the happy path and key edge cases.
-
Sync with upstream before opening a PR:
git fetch upstream git rebase upstream/main
-
Push your branch:
git push origin feat/your-feature-name
-
Open a Pull Request against
mainwith:- A clear title and description
- Reference to the related issue (
Closes #123) - Screenshots or curl examples for UI/API changes
- Confirmation that tests pass
-
PR review: A maintainer will review within a few days. Be responsive to feedback — PRs inactive for 30 days may be closed.
Use Conventional Commits style:
feat(ml-services): add custom threshold support for toxicity detector
fix(proxy-engine): handle empty response body in egress stage
docs(nodejs-sdk): add streaming example to README
test(backend-api): add coverage for API key rotation endpoint
Use the appropriate label when filing issues:
| Label | Use for |
|---|---|
bug |
Something is broken |
enhancement |
New feature or improvement |
documentation |
Docs are missing or incorrect |
good first issue |
Suitable for first-time contributors |
help wanted |
Maintainers want community input |
ml-services |
ML detection service |
proxy-engine |
Rust proxy |
backend-api |
Backend API service |
sdk |
Node.js SDK |
infrastructure |
AWS CDK / deployment |
If you're looking for where to start, these are active areas:
- Python SDK — a Python equivalent of the Node.js SDK is on the roadmap
- Go SDK — same, for Go developers
- Kubernetes support — Helm chart and K8s manifests
- Detector improvements — better accuracy, lower latency, new threat categories
- Documentation — tutorials, integration guides, API reference improvements
- Test coverage — more unit and integration tests across all services
- Performance benchmarks — expanding the benchmark suite
- Edge deployment — lightweight proxy for edge/on-prem environments
Check issues tagged good first issue for beginner-friendly tasks.
Do not open public issues for security vulnerabilities.
Report them privately to: security@aetherguard.ai
We aim to respond within 48 hours and will coordinate a fix and disclosure timeline with you.
- GitHub Discussions — for design questions and ideas
- GitHub Issues — for bugs and feature requests
- Discord: Join our community
Thanks for contributing to AetherGuard AI.