Skip to content

AlexanderC/nestjs-iacry

Repository files navigation

Nest Logo

Identity and Access Management (IAM) module for NestJS, inspired by AWS IAM.

NPM Version Package License NPM Downloads

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 APIIACryService.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.

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 deploy

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

MIT

About

Identity and Access Management (IAM) module for NestJS- highly inspired by the AWS IAM

Topics

Resources

License

Stars

Watchers

Forks

Contributors