Thank you for your interest in contributing! This document explains how to get started.
- Code of Conduct
- Getting Started
- Development Workflow
- Commit Messages
- Pull Request Process
- Building a Connector
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold it.
- Node.js ≥ 20
- pnpm ≥ 9 (
npm install -g pnpm) - Docker (for local dev with LocalStack)
- An AWS account (for integration testing)
git clone https://github.com/maroil/uniflow
cd uniflow
pnpm install
# Configure git hooks (conventional commits)
git config core.hooksPath .githookspnpm test # all packages
pnpm test --filter @uniflow/event-schema # single packagepnpm builddocker compose -f docker/docker-compose.yml up -d localstack
npx ts-node examples/send-events.ts- Fork the repository and create a branch from
main - Branch names:
feat/<short-desc>,fix/<short-desc>,chore/<short-desc> - Make your changes with tests
- Run
pnpm lint && pnpm test && pnpm build - Open a pull request
We enforce Conventional Commits via a git hook:
<type>[(scope)]: <description>
Types: feat | fix | chore | docs | style | refactor | test | perf | ci | build | revert
Examples:
feat(ingest): add writeKey Lambda authorizer
fix(processor): handle missing userId in identity graph
chore(deps): bump aws-cdk-lib to 2.155.0
test(event-schema): add screen event coverage
- Fill in the PR template
- Ensure CI is green (lint + test + build)
- Request a review from a maintainer
- Squash-merge after approval
To build a community connector:
- Create a package
packages/connector-<name>/ - Implement
BaseConnector<TConfig>from@uniflow/connector-sdk - Publish as
@uniflow/connector-<name>on npm - Add to the connector registry via PR
See connectors/webhook for a reference implementation.