Skip to main content
Version: 0.5.0 (Previous)

🔍 Identity Schema Blocks

Identity schema blocks provide JSON Schema definitions for identity data validation in NodeBlocks applications. These schemas ensure data integrity and provide clear contracts for identity-related API endpoints.


🎯 Overview

Identity schema blocks are designed to:

  • Validate identity data before processing
  • Ensure identity data consistency across the application
  • Provide clear contracts for identity API endpoints
  • Enable type safety with TypeScript integration
  • Support composition with other identity blocks

📋 Identity Schema Types

Base Identity Schemas

Core identity entity structures used as foundations for other schemas.

Identity Retrieval Schemas

Schemas for getting specific identities with identifier validation.

Identity Update Schemas

Schemas for identity modifications with optional field validation.

Identity Search Schemas

Schemas for identity filtering and pagination parameters.

Identity Deletion Schemas

Schemas for identity removal operations.


🔧 Available Identity Schemas

identityIdPathParameter

Base identity ID path parameter schema for identity operations.

Purpose: Reusable path parameter schema for identity ID validation across all identity operations

Schema Details:

  • Type: string
  • Location: path
  • Required: true
  • Name: identityId

Usage:

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

const { identityIdPathParameter } = schemas;

// Use in schema composition
export const getIdentitySchema = withSchema({
parameters: [{ ...identityIdPathParameter }]
});

getIdentitySchema

Identity retrieval schema with identity ID validation.

Purpose: This schema validates requests for retrieving specific identities by their unique identifier. It ensures the identityId is provided and properly formatted.

Schema Details:

  • Parameters: identityId (path parameter, required)
  • Purpose: Validates requests for retrieving specific identities

Usage:

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

const { getIdentitySchema } = schemas;

const identitySchema = getIdentitySchema({});
const validate = ajv.compile(identitySchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});

findIdentitySchema

Identity search schema with name filtering and pagination.

Purpose: This schema validates requests for searching and paginating identities. It supports optional name filtering and standard pagination parameters.

Schema Details:

  • Query Parameters:
    • name?: string (optional filter by name)
    • page?: number (pagination)
    • limit?: number (pagination)
  • Purpose: Validates requests for searching and paginating identities

Usage:

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

const { findIdentitySchema } = schemas;

const identitySchema = findIdentitySchema({});
const validate = ajv.compile(identitySchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'john',
page: 1,
limit: 10
});

updateIdentitySchema

Identity update schema with modifiable fields validation.

Purpose: This schema validates requests for updating identity information. It allows partial updates to identity fields while ensuring only valid fields can be modified.

Schema Details:

  • Parameters: identityId (path parameter, required)
  • Request Body: required
  • Content-Type: application/json
  • Properties:
    • email?: string (optional new email address)
    • emailVerified?: boolean (optional email verification status)
    • typeId?: string (optional new identity type identifier)
  • Additional Properties: false (strict validation)

Usage:

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

const { updateIdentitySchema } = schemas;

const identitySchema = updateIdentitySchema({});
const validate = ajv.compile(identitySchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123',
email: 'newemail@example.com',
emailVerified: true
});

deleteIdentitySchema

Identity deletion schema with identifier validation.

Purpose: This schema validates requests for deleting specific identities. It ensures the identityId is provided for the deletion operation.

Schema Details:

  • Parameters: identityId (path parameter, required)
  • Purpose: Validates requests for deleting specific identities

Usage:

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

const { deleteIdentitySchema } = schemas;

const identitySchema = deleteIdentitySchema({});
const validate = ajv.compile(identitySchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123'
});