Passa al contenuto principale

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