Core backend utilities and shared infrastructure for NestJS applications.
Features
- Event system - Typed publish/subscribe with RxJS via
EventHub
- Content templates - Handlebars-style template compilation
- Identifier generation - Pluggable ID strategies (CUID, UUID, GUID)
- Base classes - Repository, service, and controller base classes
- Custom decorators - NestJS decorators for common patterns
- Utilities - Device parser, avatar generator, username generator
- Sensitive data masking -
maskSensitive() / maskSensitiveFields() for safe logging of request data
- HTTP logger middleware - Automatically masks sensitive fields (passwords, tokens, API keys) in request logs
⚠️ Environment Variables
| Variable |
Required |
Default |
Description |
APP_URL |
yes |
- |
Base URL the application is served from |
APP_PORT |
yes |
- |
HTTP port the application listens on |
APP_VERSION |
yes |
- |
Semantic application version |
APP_NAME |
no |
- |
Application display name |
NODE_ENV |
no |
development |
Runtime environment name |
GIT_COMMIT |
no |
- |
Git commit SHA for traceability |
Quick Start
import { CoreModule } from '@breadstone/archipel-platform-core';
@Module({
imports: [CoreModule],
})
export class AppModule {}Import Options
import { EventHub, SseHub, ContentTemplate } from '@breadstone/archipel-platform-core';
import { UserAvatarGenerator } from '@breadstone/archipel-platform-core/avatar';
import { DeviceParser } from '@breadstone/archipel-platform-core/device';
import { MimeUtils } from '@breadstone/archipel-platform-core/mime-utils';Error Handling
| Error Class |
When Thrown |
TemplateValidationError |
Base class for template errors |
UnmatchedBlockError |
Unmatched block in template |
MissingPlaceholderError |
Required template placeholder missing |
GeneralTemplateValidationError |
Other template validation failures |
Resource Limits
| Limit |
Value |
Description |
SseHub subjects |
10,000 |
Maximum event subjects; throws when exceeded |
| Max request body |
1 MB |
LimitRequestSizeMiddleware default cap |
Lifecycle
- Shutdown (
OnModuleDestroy): EventHub and SseHub clean up subscriptions.
Peer Dependencies
| Package |
Required |
Notes |
@nestjs/common |
Yes |
NestJS core |
@nestjs/swagger |
Yes |
OpenAPI decorators |
class-transformer |
Yes |
DTO transformation |
class-validator |
Yes |
DTO validation |
express |
Yes |
HTTP server types |
rxjs |
Yes |
Reactive event streams |
canvas |
Yes |
Avatar image generation |
Documentation
📖 Package Docs: .docs/packages/platform-core/index.md
Development
yarn nx build platform-core
yarn nx test platform-core
yarn nx lint platform-core