bb-inspired
Version:
Core library for BB-inspired NestJS backend
103 lines (78 loc) • 3.15 kB
Markdown
# @odoo-inspired/core-lib
A comprehensive core library for NestJS backend applications, providing reusable components, utilities, and services to support enterprise-grade application development with a focus on security, flexibility, and scalability.
## Features
- **Auth Module**: JWT-based authentication and authorization with WebSocket support
- **WebSocket Module**: Real-time communication with JWT-authorized channels and role-based access control
- **Data Transfer Module**: Export/import functionality with multiple formats (JSON, CSV, XML) and encryption
- **Database Services**: Prisma and MongoDB integration with transaction support
- **Common Utilities**: Reusable helpers, loggers, and utilities
- **Decorators**: Custom decorators for API endpoints and validations
- **Filters**: Exception filters for standardized error handling
- **Guards**: Custom guards for request validation and authorization
- **Interfaces**: TypeScript interfaces for data modeling
- **Pipes**: Transform and validation pipes
- **Messaging Services**: Event-driven architecture support with message brokers
## Installation
```bash
npm install bb-inspired
```
## Usage
```typescript
import { Module } from '@nestjs/common';
import {
AuthModule,
WebsocketModule,
DataTransferModule
} from 'bb-inspired';
@Module({
imports: [
// Authentication with JWT support
AuthModule.register({
jwt: {
secret: process.env.JWT_SECRET,
expiresIn: '1d',
}
}),
// WebSocket with JWT-authorized channels
WebsocketModule.register({
cors: {
origin: ['https://your-domain.com'],
credentials: true
},
auth: {
required: true
}
}),
// Data transfer functionality
DataTransferModule.register({
basePath: './data/exports',
defaultFormat: 'json',
encryption: {
algorithm: 'aes-256-cbc',
secretKey: process.env.DATA_ENCRYPTION_KEY
},
global: true
})
],
})
export class AppModule {}
```
## Core Components Overview
### Authentication & Security
The Auth Module provides a comprehensive JWT-based authentication system with WebSocket support, refresh tokens, and integration with external auth services.
### Real-time Communication
The WebSocket Module delivers secure real-time communication with JWT authentication, role-based channel authorization, and fine-grained permission control.
### Data Management
The Data Transfer Module offers flexible data export/import capabilities with support for multiple formats, encryption, and various storage options.
### Messaging & Events
The Messaging Services facilitate event-driven architecture with support for both in-memory and distributed message brokers.
## Documentation
For detailed information about each module and its configuration options, check out the following sections:
- [Auth Module](./docs/auth.md)
- [WebSocket Module](./docs/websocket.md)
- [Data Transfer Module](./docs/data-transfer.md)
- [Database Module](./docs/database.md)
- [Messaging Services](./docs/messaging.md)
- [Common Utilities](./docs/common.md)
## License
MIT