コンテンツにスキップ

組織管理

概要

組織管理APIは、テナント内の組織(グループ)を管理するためのエンドポイントを提供します。組織の階層構造、メンバーシップ、組織単位でのアクセス制御が可能です。

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/organizations組織一覧取得
GET/api/admin/organizations/:id組織詳細取得
POST/api/admin/organizations組織作成
PUT/api/admin/organizations/:id組織更新
DELETE/api/admin/organizations/:id組織削除
GET/api/admin/organizations/:id/membersメンバー一覧取得
POST/api/admin/organizations/:id/membersメンバー追加
DELETE/api/admin/organizations/:id/members/:userIdメンバー削除
GET/api/admin/organizations/:id/hierarchy階層構造取得

組織一覧取得

テナント内の組織一覧を取得します。

エンドポイント

GET /api/admin/organizations

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20、最大: 100)
cursorstring-ページネーションカーソル
searchstring-名前で検索
parent_idstring-親組織IDでフィルタ
include_childrenboolean-子組織を含める

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/organizations" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"id": "org_abc123",
"name": "Engineering",
"display_name": "エンジニアリング部",
"description": "エンジニアリング部門",
"parent_id": null,
"member_count": 25,
"created_at": 1705881600,
"updated_at": 1705968000
},
{
"id": "org_def456",
"name": "Backend",
"display_name": "バックエンドチーム",
"description": "バックエンド開発チーム",
"parent_id": "org_abc123",
"member_count": 10,
"created_at": 1705968000,
"updated_at": 1706054400
}
],
"total": 15,
"cursor": null
}

組織詳細取得

指定された組織の詳細情報を取得します。

エンドポイント

GET /api/admin/organizations/:id

パスパラメータ

パラメータ必須説明
idstring組織ID

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/organizations/org_abc123" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "org_abc123",
"name": "Engineering",
"display_name": "エンジニアリング部",
"description": "エンジニアリング部門",
"parent_id": null,
"parent": null,
"children": [
{
"id": "org_def456",
"name": "Backend",
"display_name": "バックエンドチーム"
},
{
"id": "org_ghi789",
"name": "Frontend",
"display_name": "フロントエンドチーム"
}
],
"member_count": 25,
"metadata": {
"cost_center": "CC-001",
"location": "Tokyo"
},
"created_at": 1705881600,
"updated_at": 1705968000
}

組織作成

新しい組織を作成します。

エンドポイント

POST /api/admin/organizations

リクエストボディ

フィールド必須説明
namestring組織名(英数字、ハイフン、アンダースコア)
display_namestring表示名
descriptionstring-説明
parent_idstring-親組織ID
metadataobject-カスタムメタデータ

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/organizations" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "DevOps",
"display_name": "DevOpsチーム",
"description": "インフラストラクチャとDevOps",
"parent_id": "org_abc123",
"metadata": {
"cost_center": "CC-003"
}
}'

レスポンス例

{
"id": "org_xyz789",
"name": "DevOps",
"display_name": "DevOpsチーム",
"description": "インフラストラクチャとDevOps",
"parent_id": "org_abc123",
"member_count": 0,
"created_at": 1706140800
}

組織更新

既存の組織情報を更新します。

エンドポイント

PUT /api/admin/organizations/:id

リクエスト例

Terminal window
curl -X PUT "https://{tenant-domain}/api/admin/organizations/org_abc123" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "エンジニアリング本部",
"description": "エンジニアリング本部(更新)"
}'

組織削除

組織を削除します。

エンドポイント

DELETE /api/admin/organizations/:id

リクエスト例

Terminal window
curl -X DELETE "https://{tenant-domain}/api/admin/organizations/org_abc123" \
-H "Authorization: Bearer {token}"

レスポンス

ステータスコード 204 No Content(ボディなし)


メンバー一覧取得

指定された組織のメンバー一覧を取得します。

エンドポイント

GET /api/admin/organizations/:id/members

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20、最大: 100)
cursorstring-ページネーションカーソル
rolestring-組織内ロールでフィルタ

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/organizations/org_abc123/members" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"user_id": "usr_member001",
"email": "[email protected]",
"name": "山田 太郎",
"organization_role": "admin",
"joined_at": 1705881600
},
{
"user_id": "usr_member002",
"email": "[email protected]",
"name": "佐藤 花子",
"organization_role": "member",
"joined_at": 1705968000
}
],
"total": 25,
"cursor": "eyJ1c2VyX2lkIjoidXNyX21lbWJlcjAwMiJ9"
}

メンバー追加

組織にメンバーを追加します。

エンドポイント

POST /api/admin/organizations/:id/members

リクエストボディ

フィールド必須説明
user_idstringユーザーID
rolestring-組織内ロール(admin, member、デフォルト: member

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/organizations/org_abc123/members" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"user_id": "usr_new789",
"role": "member"
}'

レスポンス例

{
"organization_id": "org_abc123",
"user_id": "usr_new789",
"role": "member",
"joined_at": 1706140800
}

メンバー削除

組織からメンバーを削除します。

エンドポイント

DELETE /api/admin/organizations/:id/members/:userId

パスパラメータ

パラメータ必須説明
idstring組織ID
userIdstringユーザーID

リクエスト例

Terminal window
curl -X DELETE "https://{tenant-domain}/api/admin/organizations/org_abc123/members/usr_member002" \
-H "Authorization: Bearer {token}"

レスポンス

ステータスコード 204 No Content(ボディなし)


階層構造取得

組織の階層構造を取得します。

エンドポイント

GET /api/admin/organizations/:id/hierarchy

クエリパラメータ

パラメータ必須説明
depthinteger-取得する階層の深さ(デフォルト: 無制限)

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/organizations/org_abc123/hierarchy?depth=3" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "org_abc123",
"name": "Engineering",
"display_name": "エンジニアリング部",
"member_count": 25,
"children": [
{
"id": "org_def456",
"name": "Backend",
"display_name": "バックエンドチーム",
"member_count": 10,
"children": [
{
"id": "org_sub001",
"name": "API",
"display_name": "APIチーム",
"member_count": 5,
"children": []
}
]
},
{
"id": "org_ghi789",
"name": "Frontend",
"display_name": "フロントエンドチーム",
"member_count": 8,
"children": []
}
]
}