Extensions
Extensions are optional packages and built-in modules that add functionality on top of the Ignis core framework. They are organized into two categories:
Components
Components are self-contained feature modules that plug into your application via the this.component() registration method. Each component encapsulates its own bindings, controllers, and configuration.
| Component | Description | Key Features |
|---|---|---|
| Authentication | Identity verification | JWT, Basic, JWKS strategies |
| Authorization | Access control | Casbin-based RBAC, per-route policies |
| Health Check | Liveness & readiness | /health, /health/live, /health/ready |
| Email delivery | Nodemailer, Mailgun, queue support | |
| Request Tracker | Request tracing | x-request-id header, body parsing |
| Socket.IO | Real-time (Socket.IO) | Redis adapter, room-based messaging |
| Static Asset | File management | Upload/download, MinIO, Disk, BunS3 |
| Swagger | API docs | OpenAPI UI, Swagger UI, Scalar UI |
| WebSocket | Real-time (native) | Bun native WebSocket, encryption |
Helpers
Helpers are standalone utility classes for infrastructure concerns. They extend BaseHelper for scoped logging and are typically used via dependency injection.
| Helper | Description | Peer Dependencies |
|---|---|---|
| Cron | Scheduled tasks | cron |
| Crypto | Encryption/signing | Built-in |
| Environment | Env var management | Built-in |
| Error | Error utilities | Built-in |
| Inversion | DI container | Built-in |
| Logger | Logging | winston |
| Network | HTTP/TCP/UDP clients | axios (optional) |
| Kafka | Kafka messaging | @platformatic/kafka |
| Queue | Job queues | bullmq, mqtt (optional) |
| Redis | Redis client | ioredis |
| Socket.IO | Socket.IO server | socket.io |
| Storage | File storage | minio (optional) |
| Testing | Test utilities | Built-in |
| Types | Shared types | Built-in |
| UID | Snowflake IDs | Built-in |
| WebSocket | WebSocket server | Built-in |
| Worker Thread | Worker pools | Built-in |