This is the official Node.js SDK for [Project Kessel](https://github.com/project-kessel), a system for unifying APIs and experiences with fine-grained authorization, common inventory, and CloudEvents.
npm install @project-kessel/kessel-sdkA TypeScript/JavaScript SDK for connecting to Kessel services using gRPC with a fluent client builder API.
- Installation
- Examples
- Development
``bash`
npm install @project-kessel/kessel-sdk
The SDK supports OAuth 2.0 Client Credentials flow for authentication:
Check out the examples directory for working code samples:
- Builder examples: Modern async/await patterns with client builder
- Vanilla examples: Traditional callback patterns
- Authentication examples: OAuth setup and usage
- Streaming examples: Working with streaming APIs
- Check the GitHub Issues
- Look at the examples directory
`bash`
npm run build
`bash`
npm test
`bash`
npm run lint
`bash`
npm run type-check
This section provides step-by-step instructions for maintainers to release a new version of the Kessel SDK for Node.js.
This project follows Semantic Versioning 2.0.0. Version numbers use the format MAJOR.MINOR.PATCH:
- MAJOR: Increment for incompatible API changes
- MINOR: Increment for backward-compatible functionality additions
- PATCH: Increment for backward-compatible bug fixes
Note: SDK versions across different languages (Ruby, Python, Go, etc.) do not need to be synchronized. Each language SDK can evolve independently based on its specific requirements and release schedule.
- Write access to the GitHub repository
- npm account with publish access to the @project-kessel/kessel-sdk package
- Ensure CI/CD tests are passing
- Review and update CHANGELOG or release notes as needed
- Node 20 or higher
- buf for protobuf/gRPC code generation:
`bash
# On macOS
brew install bufbuild/buf/buf
# On Linux
curl -sSL "https://github.com/bufbuild/buf/releases/latest/download/buf-$(uname -s)-$(uname -m)" -o "/usr/local/bin/buf" && chmod +x "/usr/local/bin/buf"
`
1. Update the Version
`bash`Edit package.json
Update the version field to the new version number
vim package.json
2. Update Dependencies
`bash`Update package-lock.json with any dependency changes
npm install
3. Run Quality Checks
`bashRun the full test suite
npm test
4. Commit and Push Changes
`bash
Commit the version bump and any related changes
export VERSION=$(cat package.json | jq .version -r)
git add package.json package-lock.json
git commit -m "chore: bump version to ${VERSION}"
git push origin main # or git push upstream main
`5. Build and Publish the Package
`bash
Build the package
npm run buildPublish to npm (requires npm account and package access)
npm publish
`6. Tag the Release
`bash
Create and push a git tag
git tag -a v${VERSION} -m "Release version ${VERSION}"
git push origin v${VERSION} # or git push upstream v${VERSION}
``7. Create GitHub Release
- Go to the GitHub Releases page
- Click "Create a new release"
- Select the tag you just created
- Add release notes describing the changes
- Publish the release
This project is licensed under the Apache License 2.0. See the LICENSE file for details.