Skip to content

Extensions

Optional pieces you add on top of IGNIS core: components you register once, helpers you inject where you need them.

Components

ComponentWhat it doesWhen you reach for it
AuthenticationVerifies who is calling - JWT, Basic, JWKS strategiesA route needs to know who the caller is
AuthorizationCasbin-based RBAC, per-route policiesA route needs a permission check beyond authentication
Health CheckGET /health and POST /health/pingA load balancer or Kubernetes needs a liveness probe
MailSends email via Nodemailer, Mailgun, or a queueThe app sends transactional or templated email
Request TrackerTags every request with an ID, logs method/path/timingAlways on - registered automatically, nothing to configure
Socket.IOReal-time messaging over Socket.IO, Redis adapterClients need rooms or Socket.IO-specific features
Static AssetUpload/download files - MinIO, disk, or Bun S3The app stores or serves user-uploaded files
API ReferenceInteractive OpenAPI docs, Scalar UI by defaultYou want a browsable UI for your REST routes
WebSocketNative Bun WebSocket, Redis pub/sub, heartbeatClients need a raw WebSocket without Socket.IO

Helpers

Every peer dependency below is optional. You install one only when you use the helper that needs it.

HelperWhat it doesWhen you reach for itPeer dependency
CronScheduled tasksYou run code on a cron schedulecron
CryptoEncryption and signingYou hash, encrypt, or sign dataNone
EnvironmentEnv var managementYou need typed, validated env var accessNone
ErrorError utilitiesYou throw or handle an errorNone
InversionDI containerYou build custom bindings or providersNone
LoggerLoggingYou need scoped, leveled loggingwinston or pino
NetworkHTTP/TCP/UDP clientsYou call another service over HTTP, TCP, or UDPaxios, for the Axios client only
KafkaKafka messagingYou publish or consume Kafka topics@platformatic/kafka
QueueJob queuesYou need background or delayed workbullmq or mqtt
RedisRedis clientYou need a Redis connection - cache, pub/sub, locksNone - ioredis ships with the package
SecretsSecret loading and rotationYou read secrets from Vault, dotenv, or the environmentnode-vault or @dotenvx/dotenvx
Socket.IOSocket.IO serverYou build a custom real-time featuresocket.io
StorageFile storageYou read/write files to MinIO or disk directlyminio, for the MinIO backend only
TypesShared typesYou need IGNIS's shared TypeScript utility typesNone
UIDSnowflake IDsYou need unique, sortable IDsNone
WebSocketWebSocket serverYou build a custom real-time featureNone
Worker ThreadWorker poolsYou move CPU-heavy work off the main threadNone

See also

  • Core API - Base framework abstractions
  • Guides - Getting started and tutorials