Thank you for your interest in contributing to SSOJet AuthKit! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct.
- Node.js 18+
- pnpm 8+
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/ssojet-authkit.git cd ssojet-authkit -
Install dependencies:
pnpm install
-
Build all packages:
pnpm -r build
-
Run tests:
pnpm test
ssojet-authkit/
├── packages/
│ ├── authkit-core/ # Types, schemas, errors, config
│ ├── authkit-react/ # React hooks and providers
│ ├── authkit-team/ # TeamManager widget
│ ├── authkit-next/ # Next.js route handlers
│ ├── authkit-webhooks/ # Webhook + SCIM provisioning
│ └── authkit-css/ # Theming and CSS tokens
├── examples/
│ └── next-app/ # Example Next.js application
└── docs/ # Documentation
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes following our coding standards
-
Add/update tests for your changes
-
Run linting and tests:
pnpm lint pnpm test pnpm typecheck -
Build packages:
pnpm -r build
We follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Example:
feat(authkit-team): add member search filter
- Add search input to members table
- Implement debounced search
- Update tests
- Push your branch to your fork
- Open a Pull Request against
main - Fill out the PR template
- Ensure all CI checks pass
- Request review from maintainers
PR Guidelines:
- Keep PRs focused on a single concern
- Include tests for new features
- Update documentation as needed
- Add changeset for version bumps (see below)
We use Changesets for version management.
After making changes, add a changeset:
pnpm changesetFollow the prompts:
- Select packages affected by your changes
- Choose bump type (major/minor/patch)
- Write a summary of your changes
Example changeset:
---
"@ssojet/authkit-team": minor
"@ssojet/authkit-react": patch
---
Add search functionality to TeamManager widget and fix useMembers hook pagination# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests for specific package
pnpm -F @ssojet/authkit-core testpnpm test:e2eAim for >80% coverage for new code:
pnpm test:coverage- Update README.md for user-facing changes
- Add JSDoc comments for public APIs
- Update docs/ for guides and tutorials
- Include code examples where helpful
We use ESLint and Prettier for code formatting:
# Check formatting
pnpm format:check
# Auto-fix formatting
pnpm format
# Run linter
pnpm lintStyle Guidelines:
- Use TypeScript strict mode
- Prefer named exports over default exports
- Use async/await over promises
- Write descriptive variable names
- Add comments for complex logic
Create an issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Node version, OS, etc.)
- Code samples/screenshots if applicable
We welcome feature requests! Please:
- Check existing issues first
- Describe the use case
- Explain why this would benefit other users
- Be open to discussion and feedback
Report security vulnerabilities to security@ssojet.com. Do not create public issues for security concerns.
By contributing, you agree that your contributions will be licensed under the MIT License.
- Join our Discord
- Check the docs
- Create a GitHub Discussion
Thank you for contributing to SSOJet AuthKit! 🎉