Skip to content

Hooks ​

Query ​

hooks.query ​

Transforms and marshals query parameters before they reach the database adapter. Includes marshallComparisonQuery, marshallTimeQuery, marshallSortQuery, marshallCollationQuery, marshallHttpQuery, aggregationQuery, populateObject, populateObjects (and their unpopulate counterparts), and diacriticSearch.

Model ​

hooks.model ​

Transforms data model items: type conversion (processTimes, convertObjectIDs, convertDates, convertToJson, convertToString), property moving (serialize), uniqueness enforcement (checkUnique), soft-delete (setAsDeleted), TTL (setExpireAfter), previous object capture (populatePreviousObject), field protection (preventChanges), and MongoDB distinct support.

Service ​

hooks.service ​

Controls service-level behaviour: skipEvents to suppress real-time events, rateLimit for token-bucket request throttling, and countLimit for resource quota enforcement.

Authentication ​

hooks.authentication ​

Authentication-related hooks: hashPassword (re-exported from @feathersjs/authentication-local) and discardAuthenticationProviders to strip third-party OAuth fields from responses.

Authorisations ​

hooks.authorisations ​

CASL-based access control: populateSubjects, populateResource (and their unpopulate counterparts), authorise (app-level access check with query constraint injection), preventEscalation, updateAbilities (ability cache refresh), and createJWT.

Users ​

hooks.users ​

User-specific hooks: onlyMe and isNotMe access guards, enforcePasswordPolicy, storePreviousPassword, generatePassword, sendVerificationEmail, addVerification, and removeVerification.

Tags ​

hooks.tags ​

reflectTagUpdate — propagates tag name, color, or removal changes to all resources that reference the tag.

Push ​

hooks.push ​

disallowExternalPush predicate and sendNewSubscriptionEmail — sends a security alert email when a push subscription from a new device fingerprint is detected.

Storage ​

hooks.storage ​

removeAttachments — removes S3-backed attachments (and their thumbnails) from the storage service when a resource is deleted.

Logger ​

hooks.logger ​

log — app-level hook that logs hook execution details at debug level and errors at error level, with full data/params/result in development mode.

Schemas ​

hooks.schemas ​

validateData — validates hook.data items against a JSON Schema using AJV, filtering invalid items and throwing BadRequest on failure.