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 doesImport fromWhen you reach for it
AuthenticationVerifies who is calling - JWT, Basic, JWKS, service-assertion strategies@venizia/ignisA route needs to know who the caller is
AuthorizationCasbin-based RBAC, per-route policies@venizia/ignisA route needs a permission check beyond authentication
Health CheckGET /health and POST /health/ping@venizia/ignisA load balancer or Kubernetes needs a liveness probe
MailSends email via Nodemailer, Mailgun, Amazon SES, or a queue@venizia/ignis/mailThe app sends transactional or templated email
Request TrackerTags every request with an ID, logs method/path/timing@venizia/ignisAlways on - registered automatically, nothing to configure
Socket.IOReal-time messaging over Socket.IO, Redis adapter@venizia/ignis/socket-ioClients need rooms or Socket.IO-specific features
Static AssetUpload/download files - S3-compatible or local disk@venizia/ignis/static-assetThe app stores or serves user-uploaded files
API ReferenceInteractive OpenAPI docs, Scalar UI by default@venizia/ignisYou want a browsable UI for your REST routes
WebSocketNative Bun WebSocket, Redis pub/sub, heartbeat@venizia/ignis/websocketClients need a raw WebSocket without Socket.IO

Four of those are deliberately off the root barrel. Import them from their own subpath, or the names do not resolve.

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, locksioredis
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 S3 or disk directlyNone for the Bun S3 backend, which uses Bun's own client; minio for the MinIO one
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