メインコンテンツまでスキップ
バージョン: 🚧 Canary

🛠️ Utility Schema Blocks

Utility schema blocks provide JSON Schema definitions for common utility operations like file uploads and contact information validation across Nodeblocks applications. These schemas ensure consistent validation for common utility operations.


🎯 Overview

Utility schema blocks are designed to:

  • Validate file upload metadata with proper constraints
  • Ensure contact information consistency across entities
  • Support common utility operations with standardized validation
  • Provide reusable validation patterns for common data structures
  • Enable composition with entity-specific utility schemas

📋 Utility Schema Types

File Upload Schemas

Schemas for file upload metadata and validation.

Contact Information Schemas

Schemas for contact information validation.


🔧 Available Utility Schemas

fileSchema

File upload schema for validating uploaded file metadata.

Purpose: Validates file upload metadata and properties

Schema Details:

  • Type: object
  • Required Fields: id, filename, mime_type, size, url, created_at
  • Additional Properties: false (strict validation)
  • Properties:
    • id: string - File ID (UUID format)
    • filename: string - Original filename
    • mime_type: string - MIME type of the file
    • size: number - File size in bytes (minimum: 0)
    • url: string - File URL (URI format)
    • created_at: string - File creation timestamp (date-time format)

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { fileSchema } = schemas;

const validate = ajv.compile(fileSchema.schemas as SchemaDefinition);
const isValid = validate({
id: '550e8400-e29b-41d4-a716-446655440000',
filename: 'document.pdf',
mime_type: 'application/pdf',
size: 1024000,
url: 'https://example.com/files/document.pdf',
created_at: '2023-01-01T00:00:00Z'
});

contactSchema

Contact information schema for person or organization contact details.

Purpose: Validates contact information with required email

Schema Details:

  • Type: object
  • Required Fields: email
  • Additional Properties: false (strict validation)
  • Properties:
    • email: string - Email address (email format)
    • phone?: string - Phone number (optional)
    • address?: object - Address object (optional)

Usage:

import { schemas } from '@nodeblocks/backend-sdk';

const { contactSchema } = schemas;

const validate = ajv.compile(contactSchema.schemas as SchemaDefinition);
const isValid = validate({
email: 'contact@example.com',
phone: '+1-555-123-4567',
address: {
street: '123 Main St',
city: 'New York',
country: 'USA'
}
});