Schema Overview
@feathersjs/schema
provides a way to define data models and to dynamically resolve them. It comes in in the following main parts:
- JSON schema using TypeBox or plain JSON schema to define a data model with TypeScript types and validations. This allows us to:
- Automatically get TypeScript types from schema definitions
- Automatically generate API documentation
- Create database adapter models without duplicating the data format
- Validators take a TypeBox or JSON schema to validate data to
- Ensure data is valid and always in the right format
- Validate query string queries and convert them to the right type
- Resolvers - Resolve properties based on a context (usually the hook context). This can be used for many different things like:
- Adding default and computed values
- Populating associations
- Securing queries and e.g. limiting requests to a user
- Removing protected properties for external requests
- Ability to add read- and write permissions on the property level
- Hashing passwords and validating dynamic password policies