ื“ืœื’ ืœืชื•ื›ืŸ ื”ืจืืฉื™

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