📧 Invitation Schema Blocks
Invitation schema blocks provide validation schemas for invitation management operations in Nodeblocks applications. These schemas ensure data integrity and proper validation for invitation creation, retrieval, and management operations.
🎯 Overview
Invitation schema blocks are designed to:
- Validate invitation data structures for consistency
- Ensure required fields are present in requests
- Enforce data types and format validation
- Support filtering and pagination for invitation queries
- Provide type safety with TypeScript integration
📋 Schema Structure
Each invitation schema follows a consistent pattern:
- Type: Defines the schema type (object, array, etc.)
- Required Fields: Specifies mandatory properties
- Properties: Defines individual field validations
- Additional Properties: Controls strict validation behavior
🔧 Available Invitation Schemas
invitationSchema
Base invitation schema defining the structure for invitation data.
Purpose: Validates invitation data structure for user invitations
Schema Details:
- Type:
object
- Required Fields: None (base schema)
- Additional Properties:
false
(strict validation) - Properties:
email: string
- Email address (email format validation)fromUserId?: string
- ID of the inviter userorgId?: string
- ID of the organization to invite torole?: string
- Role of the user in the organization
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { invitationSchema } = schemas;
const baseInvitationSchema = invitationSchema({});
const validate = ajv.compile(baseInvitationSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
fromUserId: 'user123',
orgId: 'org456',
role: 'member'
});
createInvitationSchema
Schema for creating new invitations with required fields validation.
Purpose: Validates invitation creation requests with required fields
Schema Details:
- Type:
object
- Required Fields:
email
,fromUserId
- Optional Fields:
orgId
,role
- Additional Properties:
false
(strict validation) - Content-Type:
application/json
- Request Body:
required
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { createInvitationSchema } = schemas;
const createSchema = createInvitationSchema({});
const validate = ajv.compile(createSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
fromUserId: 'user123',
orgId: 'org456',
role: 'member'
});
getInvitationSchema
Schema for retrieving a single invitation by ID.
Purpose: Validates path parameters for GET invitation endpoint
Schema Details:
- Type:
object
- Required Fields:
invitationId
(path parameter) - Parameters:
invitationId
(path parameter) - Additional Properties:
false
(strict validation)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { getInvitationSchema } = schemas;
const getSchema = getInvitationSchema({});
const validate = ajv.compile(getSchema.schemas as SchemaDefinition);
const isValid = validate({
invitationId: 'inv123'
});
deleteInvitationSchema
Schema for deleting an invitation by ID.
Purpose: Validates path parameters for DELETE invitation endpoint
Schema Details:
- Type:
object
- Required Fields:
invitationId
(path parameter) - Parameters:
invitationId
(path parameter) - Additional Properties:
false
(strict validation)
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteInvitationSchema } = schemas;
const deleteSchema = deleteInvitationSchema({});
const validate = ajv.compile(deleteSchema.schemas as SchemaDefinition);
const isValid = validate({
invitationId: 'inv123'
});
findInvitationsSchema
Schema for finding invitations with optional filtering and pagination.
Purpose: Validates query parameters for invitation search with pagination
Schema Details:
- Type:
object
- Required Fields: None (all query parameters optional)
- Additional Properties:
false
(strict validation) - Parameters: Query parameters for filtering and pagination
- Query Parameters:
email?: string
- Filter by email (email format)fromUserId?: string
- Filter by inviter user IDorgId?: string
- Filter by organization IDrole?: string
- Filter by rolepage?: number
- Pagination page numberlimit?: number
- Pagination limit
Usage:
import { schemas } from '@nodeblocks/backend-sdk';
const { findInvitationsSchema } = schemas;
const findSchema = findInvitationsSchema({});
const validate = ajv.compile(findSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'user@example.com',
page: 1,
limit: 10
});
🔗 Related Documentation
- Invitation Domain Overview - Invitation domain overview
- Invitation Handlers - Invitation handler functions
- Invitation Routes - Invitation route endpoints