メインコンテンツまでスキップ
バージョン: 0.9.0 (最新)

🔍 アイデンティティスキーマ

アイデンティティスキーマは、NodeBlocksアプリケーションでのアイデンティティデータ検証用のJSONスキーマ定義を提供します。これらのスキーマは、データの整合性を保証し、アイデンティティ関連のAPIエンドポイントの明確な契約を提供します。


🎯 概要

アイデンティティスキーマは以下の目的で設計されています:

  • 処理前のアイデンティティデータの検証
  • アプリケーション全体でのアイデンティティデータの一貫性の保証
  • アイデンティティAPIエンドポイントの明確な契約の提供
  • TypeScript統合による型安全性の実現
  • 他のアイデンティティブロックとの合成のサポート

📋 アイデンティティスキーマタイプ

基本アイデンティティスキーマ

他のスキーマの基盤として使用されるコアアイデンティティエンティティ構造。

アイデンティティ取得スキーマ

識別子検証を含む特定のアイデンティティを取得するためのスキーマ。

アイデンティティ更新スキーマ

オプションフィールド検証を含むアイデンティティ変更用のスキーマ。

アイデンティティ検索スキーマ

アイデンティティフィルタリングとページネーションパラメータ用のスキーマ。

アイデンティティ削除スキーマ

アイデンティティ削除操作用のスキーマ。


🔧 利用可能なアイデンティティスキーマ

identityIdPathParameter

アイデンティティ操作用の基本アイデンティティIDパスパラメータスキーマ。

目的: すべてのアイデンティティ操作にわたるアイデンティティID検証用の再利用可能なパスパラメータスキーマ

スキーマ詳細:

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

使用例:

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

const { identityIdPathParameter } = schemas;

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

getIdentitySchema

アイデンティティID検証を含むアイデンティティ取得スキーマ。

目的: このスキーマは、一意の識別子によって特定のアイデンティティを取得するリクエストを検証します。identityIdが提供され、適切にフォーマットされていることを保証します。

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)
  • 目的: 特定のアイデンティティを取得するリクエストを検証します

使用例:

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

名前フィルタリングとページネーションを含むアイデンティティ検索スキーマ。

目的: このスキーマは、アイデンティティの検索とページネーションのリクエストを検証します。オプションの名前フィルタリングと標準のページネーションパラメータをサポートします。

スキーマ詳細:

  • Query Parameters:
    • name?: string(名前によるオプションのフィルター)
    • page?: number(ページネーション)
    • limit?: number(ページネーション)
  • 目的: アイデンティティの検索とページネーションのリクエストを検証します

使用例:

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

変更可能なフィールド検証を含むアイデンティティ更新スキーマ。

目的: このスキーマは、アイデンティティ情報を更新するリクエストを検証します。有効なフィールドのみが変更できることを保証しながら、アイデンティティフィールドの部分更新を許可します。

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)
  • Request Body: required
  • Content-Type: application/json
  • Properties:
    • email?: string(オプションの新しいメールアドレス)
    • emailVerified?: boolean(オプションのメール検証ステータス)
    • typeId?: string(オプションの新しいアイデンティティタイプ識別子)
  • Additional Properties: false(厳密な検証)

使用例:

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

識別子検証を含むアイデンティティ削除スキーマ。

目的: このスキーマは、特定のアイデンティティを削除するリクエストを検証します。削除操作のためにidentityIdが提供されていることを保証します。

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)
  • 目的: 特定のアイデンティティを削除するリクエストを検証します

使用例:

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'
});

lockIdentitySchema

識別子検証を含むアイデンティティロックスキーマ。

目的: このスキーマは、特定のアイデンティティをロックするリクエストを検証します。ロック操作のためにidentityIdが提供されていることを保証します。

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)
  • 目的: 特定のアイデンティティをロックするリクエストを検証します

使用例:

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

const { lockIdentitySchema } = schemas;

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

unlockIdentitySchema

識別子検証を含むアイデンティティアンロックスキーマ。

目的: このスキーマは、特定のアイデンティティをアンロックするリクエストを検証します。アンロック操作のためにidentityIdが提供されていることを保証します。

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)
  • 目的: 特定のアイデンティティをアンロックするリクエストを検証します

使用例:

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

const { unlockIdentitySchema } = schemas;

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

findByIdentityIdSchema

パスパラメータ検証を含むIDによるアイデンティティ取得スキーマ。

目的: 特定のアイデンティティIDに関連付けられたユーザープロファイルを取得するリクエストを検証し、ページネーションパラメータをサポートします。

スキーマ構造:

{
identityId: string; // required - unique identity identifier to fetch profiles for
page?: number; // optional - page number for pagination (default: 1)
limit?: number; // optional - number of items per page (default: 10)
}

スキーマ詳細:

  • Parameters: identityId(パスパラメータ、必須)、ページネーションクエリパラメータ(オプション)
  • 目的: アイデンティティIDによるページネーションされたプロファイルを取得するリクエストを検証します

使用例:

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

const { findByIdentityIdSchema } = schemas;

const schema = findByIdentityIdSchema({});
const validate = ajv.compile(schema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity123',
page: 1,
limit: 10
});

// Apply to feature composition:
export const getProfileByIdentityIdFeature = compose(getByIdentityIdSchema, getProfileByIdentityIdRoute);

検証ルール:

  • identityId: 有効な文字列識別子である必要があります
  • page: オプションの整数、最小値1
  • limit: オプションの整数、最小値1、最大値は設定可能