Przejdź do głównej zawartości

Plugin API Reference

Shared APIs, decorators, guards, and base classes available to all plugins.

Base Classes

TenantOrganizationBaseEntity

All plugin entities should extend this class for automatic tenant and organization scoping:

export class TenantOrganizationBaseEntity extends TenantBaseEntity {
organizationId: string;
organization: Organization;
}

TenantAwareCrudService

Provides CRUD operations with automatic tenant filtering:

export class TenantAwareCrudService<T> extends CrudService<T> {
findAll(filter?: FindManyOptions<T>): Promise<IPagination<T>>;
findOneByIdString(id: string, options?: FindOneOptions<T>): Promise<T>;
create(entity: DeepPartial<T>): Promise<T>;
update(id: string, entity: DeepPartial<T>): Promise<UpdateResult | T>;
delete(id: string): Promise<DeleteResult>;
}

CrudController

Base controller with standard REST endpoints:

export class CrudController<T> {
constructor(protected readonly crudService: CrudService<T>) {}
}

Guards

GuardDescription
TenantPermissionGuardEnsures request is tenant-scoped
PermissionGuardChecks user permissions
OrganizationPermissionGuardChecks org-level perms
RoleGuardChecks user role

Decorators

DecoratorDescription
@Permissions(...)Define required permissions
@Roles(...)Define required roles
@Public()Mark endpoint as public
@Feature(...)Link to feature flag

Multi-ORM Decorators

DecoratorDescription
@MultiORMEntity(table)Entity registration
@MultiORMColumn(opts)Column definition
@MultiORMManyToOne(fn)Many-to-One relation
@MultiORMOneToMany(fn)One-to-Many relation
@MultiORMManyToMany(fn)Many-to-Many relation
@MultiORMOneToOne(fn)One-to-One relation

Pipes

PipeDescription
UUIDValidationPipeValidates UUID parameters
UseValidationPipeApplies class-validator
ParseJsonPipeParses JSON query params

DTOs

// Base query DTOs
BaseQueryDTO<T>; // Pagination + filter + relations
FindOptionsQueryDTO<T>; // Find options with relations