🔍 User Schema Blocks
User schema blocks provide JSON Schema definitions for user data validation in Nodeblocks applications. These schemas ensure data integrity and provide clear contracts for user-related API endpoints.
🎯 Overview
User schema blocks are designed to:
- Validate user data before processing
- Ensure user data consistency across the application
- Provide clear contracts for user API endpoints
- Enable type safety with TypeScript integration
- Support composition with other user blocks
📋 User Schema Types
Base User Schemas
Core user entity structures used as foundations for other schemas.
User Creation Schemas
Schemas for user registration with required field validation.
User Update Schemas
Schemas for profile updates with optional field validation.
User Query Schemas
Schemas for user filtering and pagination parameters.
🔧 Available User Schemas
userSchema
Base user schema definition for JSON Schema validation.
Purpose: Base schema for user profile data validation
Schema Details:
- Type:
object
- Additional Properties:
false
(strict validation) - Properties:
identityId: string
- Linked identity identifiername: string
- User display nameavatar?: Avatar | null
- User avatar object or null
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { userSchema } = schemas;
const validate = ajv.compile(userSchema as SchemaDefinition);
const isValid = validate({
identityId: "identity-123",
name: "John Doe",
avatar: null
});
createUserSchema
User creation schema with required fields for user registration.
Purpose: Validates creation payload for user profiles linked to identities
Schema Details:
- Type:
object
- Required Fields:
identityId
,name
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Request Body:
required
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { createUserSchema } = schemas;
const userSchema = createUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: "identity-123",
name: "New User"
});
updateUserSchema
User update schema with optional fields for profile modification.
Purpose: Validates partial updates to user profiles
Schema Details:
- Type:
object
- Required Fields: None (all fields optional)
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Parameters:
profileId
(path parameter)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateUserSchema } = schemas;
const userSchema = updateUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
name: "Jane Doe"
});
getUserSchema
User retrieval schema for getting single users.
Purpose: Validates requests for retrieving specific users.
Schema Details:
- Parameters:
profileId
(path parameter) - Purpose: Validates requests for retrieving specific users
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { getUserSchema } = schemas;
const userSchema = getUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
profileId: 'profile123'
});
deleteUserSchema
User deletion schema for removing users.
Purpose: Validates requests for deleting specific users.
Schema Details:
- Parameters:
profileId
(path parameter) - Purpose: Validates requests for deleting specific users
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteUserSchema } = schemas;
const userSchema = deleteUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
profileId: 'profile123'
});
lockUserSchema
User lock schema for locking user accounts.
Purpose: Validates requests for locking specific user accounts.
Schema Details:
- Parameters:
identityId
(path parameter) - Purpose: Validates requests for locking specific user accounts
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { lockUserSchema } = schemas;
const userSchema = lockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});
unlockUserSchema
User unlock schema for unlocking user accounts.
Purpose: Validates requests for unlocking specific user accounts.
Schema Details:
- Parameters:
identityId
(path parameter) - Purpose: Validates requests for unlocking specific user accounts
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { unlockUserSchema } = schemas;
const userSchema = unlockUserSchema({});
const validate = ajv.compile(userSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});
findUsersSchema
Users search schema for finding users with filtering and pagination.
Purpose: Validates requests for searching and paginating users.
Schema Details:
- Query Parameters:
identityId?: string
(optional filter by identity)name?: string
(optional filter by name)page?: number
(pagination)limit?: number
(pagination)
- Purpose: Validates requests for searching and paginating users
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findUsersSchema } = schemas;
const usersSchema = findUsersSchema({});
const validate = ajv.compile(usersSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'John',
page: 1,
limit: 10
});
🔗 Related Documentation
- User Handler Blocks - User business logic functions