Hexagonal architecture. Start with the contracts.
Interfaces are the ports of your hexagonal architecture. Your business modules consume these contracts; provider modules implement them. Explore each interface, then choose its implementation at the application boundary.
- Explicit, versioned contracts
- Replaceable implementations
- Shared across the ecosystem
API
A structured framework for building HTTP-based services using a clean, decorator-based approach to defining API endpoints and processing requests.
- Decorator-based API controller definition
- Flexible HTTP request and response handling
- Advanced parameter processing and injection
API Util
Utility helpers on top of the API interface: request assertion and validation, rate limiting, and structured HTTP error responses.
- Type-narrowing assert and validation helpers
- @RateLimit decorator for throttling handlers
- Failures surfaced as standard HTTPResult errors
Auth
A flexible framework for implementing authentication and authorization using decorator-based approach to securing API endpoints and managing user sessions.
- Decorator-based authentication for API endpoints
- Token signing, verification and cookie attachment
- Injects the verified payload into handler parameters
Core
The foundational building blocks of the interface system: proxies, interface functions, decorator factories, metadata and the module lifecycle.
- Async, event and registering proxies with automatic cleanup
- InterfaceFunction and ImplementInterface wiring
- Module lifecycle events and configuration helpers
Data API
A framework for building data-driven APIs with a focus on CRUD operations, simplifying the creation of RESTful endpoints for your data models.
- Specialized controllers for data model operations
- Pagination out of the box, per-field sorting and filtering
- Field access control and data validation
Database
A database-agnostic query interface that brings Antelope Query Language (AQL), allowing consistent data operations across different database implementations.
- Database-agnostic query interface (AQL)
- Complete CRUD operations with type safety
- Table and index management operations
Database Catalog
Inspect and profile an existing database during development, so generated modules reflect its relations, columns and registration constraints. The package is not yet published to npm.
- Relations, column types, indexes and foreign keys
- Aggregate profiles without returning stored rows
- Provider-specific registration eligibility
Database Decorators
A framework for implementing database operations using TypeScript decorators, offering a flexible, object-oriented approach to defining database tables and models.
- TypeScript decorators for table and model definitions
- Table modifiers for encryption, hashing, and localization
- Integration with API controllers
Send single, batch and template emails through a provider-independent contract, with attachments and explicit capability discovery.
- Single, batch and template messages
- Attachments and threading headers
- Provider capabilities and typed send results
File Storage
Sign direct uploads and downloads, manage stored objects, and promote staged files through interchangeable storage providers.
- Presigned uploads and private downloads
- Staging, promotion and file metadata
- Named storage targets and per-file visibility
Logging
A structured, channel-based logging system with multiple severity levels, emitted as events that any module can listen to and process.
- Severity levels from Debug to Error
- Named channels emitted through an EventProxy
- Convenience helpers for the main channel
MongoDB
A direct interface to MongoDB client functionality, providing type-safe access to MongoDB operations for AntelopeJS applications.
- Direct access to MongoDB client for native operations
- Type-safe client access with TypeScript
- Seamless integration with AntelopeJS ecosystem
Redis
A promise-based interface for interacting with Redis, providing simplified access to Redis key-value storage, pub/sub messaging, and other Redis operations.
- Promise-based API for Redis operations
- Reliable connection management with auto-reconnection
- Full access to all Redis commands and features
Redis Scheduler
A robust interface for distributed task scheduling using Redis, enabling reliable execution of tasks across multiple application instances.
- Distributed task scheduling across application cluster
- Custom task handlers with typed task information
- Automatic retries with configurable failure handling
RethinkDB
A TypeScript-compatible interface for RethinkDB, providing access to RethinkDB functionality with a clean, promise-based API.
- Simple RethinkDB query execution
- Type-safe return values using TypeScript generics
- Full access to RethinkDB query builder (r)
Stripe
A structured framework for integrating Stripe payment processing capabilities into your AntelopeJS applications with a clean API for payments and webhooks.
- Complete payment intent management workflow
- Real-time payment status monitoring
- Secure webhook handling for Stripe events