🔍 Organization スキーマブロック
Organization スキーマブロックは、NodeBlocks アプリケーションにおける組織データ検証のための JSON Schema 定義を提供します。これらのスキーマはデータ整合性を確保し、組織関連の API エンドポイントのための明確なコントラクトを提供します。
🎯 概要
Organization スキーマブロックは次のことを目的として設計されています:
- 処理前に組織データを検証
- 組織内のメンバー役割管理をサポート
- 組織メンバーシップと権限を処理
- 組織検索とフィルタリング機能を有効化
- 組織分離付きマルチテナントアプリケーションをサポート
- 連絡先と住所管理を提供
📋 Organization スキーマタイプ
ベース組織スキーマ
他のスキーマの基礎として使用されるコア組織構造。
組織作成スキーマ
必須フィールド検証付き組織作成スキーマ。
組織更新スキーマ
オプションのフィールド検証付き組織変更スキーマ。
組織メンバーマネージメントスキーマ
組織内のメンバー役割とメンバーシップを管理するためのスキーマ。
組織クエリスクーマ
組織フィルタリングとページネーションパラメータのスキーマ。
🔧 利用可能な Organization スキーマ
organizationSchema
組織データの構造を定義するベース組織スキーマ。
目的: 連絡先情報付き組織データの構造を定義
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(ベーススキーマ)
- 追加プロパティ:
false
(厳密検証) - プロパティ:
name?: string
- 組織名(最小長 1)description?: string
- 組織説明contact_email?: string
- 組織連絡先メール(メール形式)contact_phone?: string
- 組織連絡先電話番号address?: object
- 組織住所オブジェクトlogo?: { objectId: string; type: string } | null
- 組織ロゴ記述子または null
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { organizationSchema } = schemas;
const validate = ajv.compile(organizationSchema as SchemaDefinition);
const isValid = validate({
name: 'Acme Corporation',
description: 'A leading technology company',
contact_email: 'contact@acme.com',
});
createOrganizationSchema
新規組織のための必須フィールド付き組織作成スキーマ。
目的: 作成時の組織データを検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド:
organization.name
,organization.description
,organization.contact_email
,ownerId
- オプションのフィールド:
organization.contact_phone
,organization.address
- 追加プロパティ:
false
(厳密検証) - Content-Type:
application/json
- リクエストボディ:
required
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { createOrganizationSchema } = schemas;
const organizationSchema = createOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organization: {
name: 'Acme Corporation',
description: 'A leading technology company',
contact_email: 'contact@acme.com',
contact_phone: '+1-555-0123'
},
ownerId: 'identity123'
});
organizationMembersSchema
組織内のメンバー役割を管理するための組織メンバーシーマ。
目的: 組織メンバー割り当ての構造を定義
スキーマ詳細:
- タイプ:
array
- 必須フィールド:
identityId
,role
(各項目に対して) - 最小項目数: 1
- 追加プロパティ:
false
(厳密検証) - プロパティ:
identityId: string
- メンバーアイデンティティ IDrole: string
- 組織内のメンバー役割
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { organizationMembersSchema } = schemas;
const membersSchema = organizationMembersSchema({});
const validate = ajv.compile(membersSchema.schemas as SchemaDefinition);
const isValid = validate([
{ identityId: 'identity1', role: 'admin' },
{ identityId: 'identity2', role: 'member' }
]);
upsertOrganizationMembersSchema
組織内のメンバー役割を管理するための組織メンバーアップサートスキーマ。
目的: 組織のメンバー役割割り当てを検証
スキーマ詳細:
- タイプ:
array
- 必須フィールド:
identityId
,role
(各項目に対して) - 最小項目数: 1
- 追加プロパティ:
false
(厳密検証) - Content-Type:
application/json
- パラメータ:
organizationId
(パスパラメータ) - リクエストボディ:
required
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { upsertOrganizationMembersSchema } = schemas;
const membersSchema = upsertOrganizationMembersSchema({});
const validate = ajv.compile(membersSchema.schemas as SchemaDefinition);
const isValid = validate([
{ identityId: 'identity1', role: 'admin' },
{ identityId: 'identity2', role: 'member' }
]);
updateOrganizationSchema
組織変更のためのオプションのフィールド付き組織更新スキーマ。
目的: 部分的な組織データ更新を検証
スキーマ詳細:
- タイプ:
object
- 必須フィールド: なし(すべてのフィールドがオプション)
- 追加プロパティ:
false
(厳密検証) - Content-Type:
application/json
- パラメータ:
organizationId
(パスパラメータ) - リクエストボディ:
required
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { updateOrganizationSchema } = schemas;
const organizationSchema = updateOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
description: 'Updated description',
contact_phone: '+1-555-9999'
});
getOrganizationSchema
単一組織を取得するための組織取得スキーマ。
目的: 特定の組織を取得するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
(パスパラメータ) - 目的: 特定の組織を取得するリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getOrganizationSchema } = schemas;
const organizationSchema = getOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
deleteOrganizationSchema
組織を削除するための組織削除スキーマ。
目的: 特定の組織を削除するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
(パスパラメータ) - 目的: 特定の組織を削除するリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrganizationSchema } = schemas;
const organizationSchema = deleteOrganizationSchema({});
const validate = ajv.compile(organizationSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
getOrganizationMemberRoleSchema
組織内のメンバー役割を取得するための組織メンバー役割取得スキーマ。
目的: 組織内のメンバー役割を取得するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
,identityId
(パスパラメータ) - 目的: 組織内のメンバー役割を取得するリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { getOrganizationMemberRoleSchema } = schemas;
const memberRoleSchema = getOrganizationMemberRoleSchema({});
const validate = ajv.compile(memberRoleSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
checkOrganizationMemberExistenceSchema
メンバーシップを確認するための組織メンバー存在チェックスキーマ。
目的: 組織内のメンバー存在をチェックするリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
(パスパラメータ)、identityId
(クエリパラメータ) - 目的: 組織内のメンバー存在をチェックするリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { checkOrganizationMemberExistenceSchema } = schemas;
const memberExistenceSchema = checkOrganizationMemberExistenceSchema({});
const validate = ajv.compile(memberExistenceSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
findOrganizationMembersSchema
組織内のメンバーを検索するための組織メンバー検索スキーマ。
目的: 組織内のメンバーを検索するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
(パスパラメータ) - 目的: 組織内のメンバーを検索するリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationMembersSchema } = schemas;
const membersSchema = findOrganizationMembersSchema({});
const validate = ajv.compile(membersSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123'
});
deleteOrganizationMemberSchema
組織からメンバーを削除するための組織メンバー削除スキーマ。
目的: 組織からメンバーを削除するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
,identityId
(パスパラメータ) - 目的: 組織からメンバーを削除するリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { deleteOrganizationMemberSchema } = schemas;
const memberDeletionSchema = deleteOrganizationMemberSchema({});
const validate = ajv.compile(memberDeletionSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
identityId: 'identity456'
});
findOrganizationsForMemberSchema
特定のメンバー向けの組織を検索するためのスキーマ、オプションで役割と継承を含むクエリパラメータ付き。
目的: 特定のメンバーに関連付けられた組織のリクエストを検証、オプションで役割と継承でフィルタリング
スキーマ詳細:
- パスパラメータ:
identityId
(必須) - クエリパラメータ:
roles?
,includeInherited?
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationsForMemberSchema } = schemas;
const memberOrgsSchema = findOrganizationsForMemberSchema({});
const validate = ajv.compile(memberOrgsSchema.schemas as SchemaDefinition);
const isValid = validate({
identityId: 'identity456',
roles: 'admin',
includeInherited: true
});
findOrganizationsSchema
フィルタリングとページネーション付きで組織を検索するための組織検索スキーマ。
目的: 組織の検索とページネーションのリクエストを検証
スキーマ詳細:
- クエリパラメータ:
contact_email?: string
- 連絡先メールでフィルター(メール形式)contact_phone?: string
- 連絡先電話でフィルターdescription?: string
- 説明でフィルターname?: string
- 名でフィルター(最小長 1)page?: number
- ページネーションのページ番号limit?: number
- ページネーションの制限
- 目的: 組織の検索とページネーションのリクエストを検証
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationsSchema } = schemas;
const organizationsSchema = findOrganizationsSchema({});
const validate = ajv.compile(organizationsSchema.schemas as SchemaDefinition);
const isValid = validate({
name: 'Acme',
contact_email: 'contact@acme.com',
page: 1,
limit: 10
});
findOrganizationDescendantsSchema
階層内の子孫組織を取得するための組織子孫取得スキーマ。
目的: オプションの深さ制御付きで子孫組織を取得するリクエストを検証
スキーマ詳細:
- パラメータ:
organizationId
(パスパラメータ)、depth?
(オプションのクエリパラメータ、1以上の数値)
使用例:
import { schemas } from '@nodeblocks/backend-sdk';
const { findOrganizationDescendantsSchema } = schemas;
const descendantsSchema = findOrganizationDescendantsSchema({});
const validate = ajv.compile(descendantsSchema.schemas as SchemaDefinition);
const isValid = validate({
organizationId: 'org123',
depth: 2
});
🔗 関連ドキュメント
- Organization Domain Overview - Organization ドメイン概要