nestjs-iacry
v0.2.1
Published
NestJS - an identity and access control module inspired by AWS IAM (@iac, @iam)
Downloads
184
Maintainers
Readme
Overview
nestjs-iacry provides fine-grained, policy-based access control for NestJS applications. Define Allow/Deny policies with glob-pattern matching on Actions, Resources, and Principals — then enforce them via route decorators or a programmatic service API.
Features
- AWS IAM-inspired policies — familiar Allow/Deny model with Action, Resource, and Principal fields
- Multiple storage backends — Sequelize, TypeORM, in-memory, or bring your own
- Decorator-based route guards —
@IACryFirewall,@IACryAction,@IACryResource,@IACryPrincipal - Programmatic API —
IACryService.isGranted()for imperative checks - Glob-pattern matching — wildcards, negation, pipes via micromatch
- Optional caching — ioredis with configurable TTL, or custom cache adapters
- Sid-based policy management — for system-managed policy lifecycles
Documentation
Full documentation is available at the Documentation Site.
- Getting Started — Installation and basic setup
- Configuration — Module options and async configuration
- Storage Adapters — Sequelize, TypeORM, custom adapters
- Decorators — Route-level authorization
- Service API — Programmatic policy management
- Policies — Policy structure and pattern matching
- Caching — Redis and custom cache adapters
- Advanced — Custom adapters, firewall rules, exports
NestJS Compatibility
| NestJS Version | nestjs-iacry Version | |----------------|---------------------| | 11.x | >= 0.3.0 | | 10.x | >= 0.2.0 | | 9.x | >= 0.0.12 |
Test Coverage
| Category | Statements | Branches | Functions | Lines | |----------|-----------|----------|-----------|-------| | All files | 90.25% | 81.92% | 87.5% | 90.27% | | Core (policy, matcher, firewall) | 100% | 91%+ | 100% | 100% | | Decorators | 97%+ | 80%+ | 100% | 97%+ | | Errors | 100% | 100% | 100% | 100% | | Helpers | 100% | 94% | 100% | 100% | | Storages | 86%+ | 81%+ | 80%+ | 86%+ |
149 tests across 19 test suites.
Development
# Run tests
npm test
# Build
npm run build
# Release
npm run format
npm run release # or: npm run patch | minor | major
npm run deployContributing
Contributions are welcome! Please open an issue or submit a pull request.
License
MIT
