コンテンツにスキップ

ジョブ管理

概要

ジョブ管理APIは、非同期で実行されるバッチ処理やレポート生成などのジョブを管理するためのエンドポイントを提供します。ユーザーインポート、一括更新、レポート生成などの長時間実行タスクを制御できます。

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/jobsジョブ一覧取得
GET/api/admin/jobs/:idジョブ詳細取得
POST/api/admin/jobs/:id/cancelジョブキャンセル
POST/api/admin/jobs/users/importユーザーインポート開始
POST/api/admin/jobs/users/exportユーザーエクスポート開始
POST/api/admin/jobs/users/bulk-updateユーザー一括更新開始
POST/api/admin/jobs/reports/generateレポート生成開始
GET/api/admin/jobs/:id/downloadジョブ結果ダウンロード

ジョブ一覧取得

ジョブの一覧を取得します。

エンドポイント

GET /api/admin/jobs

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20、最大: 100)
cursorstring-ページネーションカーソル
typestring-ジョブタイプでフィルタ
statusstring-ステータスでフィルタ

ジョブステータス

ステータス説明
pending待機中
running実行中
completed完了
failed失敗
cancelledキャンセル

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/jobs?status=running" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"id": "job_abc123",
"type": "user_import",
"status": "running",
"progress": 45,
"total_items": 1000,
"processed_items": 450,
"created_at": 1706140800,
"started_at": 1706140805
},
{
"id": "job_def456",
"type": "report_generation",
"status": "completed",
"progress": 100,
"created_at": 1706054400,
"started_at": 1706054405,
"completed_at": 1706054800
}
],
"total": 15,
"cursor": "eyJpZCI6ImpvYl9kZWY0NTYifQ=="
}

ジョブ詳細取得

指定されたジョブの詳細情報を取得します。

エンドポイント

GET /api/admin/jobs/:id

パスパラメータ

パラメータ必須説明
idstringジョブID

リクエスト例

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

レスポンス例

{
"id": "job_abc123",
"type": "user_import",
"status": "running",
"progress": 45,
"total_items": 1000,
"processed_items": 450,
"success_count": 440,
"error_count": 10,
"errors": [
{
"row": 15,
"field": "email",
"error": "invalid_email",
"message": "メールアドレスの形式が不正です",
"value": "invalid-email"
},
{
"row": 23,
"field": "email",
"error": "email_already_exists",
"message": "このメールアドレスは既に使用されています",
"value": "[email protected]"
}
],
"parameters": {
"filename": "users_2024.csv",
"update_existing": false,
"send_welcome_email": true
},
"created_by": "usr_admin001",
"created_at": 1706140800,
"started_at": 1706140805,
"estimated_completion": 1706141200
}

ジョブキャンセル

実行中のジョブをキャンセルします。

エンドポイント

POST /api/admin/jobs/:id/cancel

パスパラメータ

パラメータ必須説明
idstringジョブID

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/jobs/job_abc123/cancel" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "job_abc123",
"status": "cancelled",
"cancelled_at": 1706141000,
"processed_items": 450
}

ユーザーインポート開始

CSVファイルからユーザーを一括インポートします。

エンドポイント

POST /api/admin/jobs/users/import

リクエストボディ

フィールド必須説明
file_urlstringインポートファイルのURL
file_formatstring-ファイル形式(csv, json、デフォルト: csv
update_existingboolean-既存ユーザーを更新するか
send_welcome_emailboolean-ウェルカムメールを送信するか
field_mappingobject-フィールドマッピング

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/jobs/users/import" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"file_url": "https://storage.example.com/imports/users_2024.csv",
"file_format": "csv",
"update_existing": false,
"send_welcome_email": true,
"field_mapping": {
"メールアドレス": "email",
"氏名": "name",
"部署": "metadata.department"
}
}'

レスポンス例

{
"job_id": "job_import_xyz789",
"status": "pending",
"created_at": 1706140800
}

CSVフォーマット例

email,name,phone,department
[email protected],山田太郎,090-1234-5678,Engineering
[email protected],佐藤花子,090-8765-4321,Sales

ユーザーエクスポート開始

ユーザーデータをエクスポートします。

エンドポイント

POST /api/admin/jobs/users/export

リクエストボディ

フィールド必須説明
formatstring出力形式(csv, json
fieldsstring[]-エクスポートするフィールド
filtersobject-フィルタ条件
include_piiboolean-PIIを含めるか(デフォルト: false)

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/jobs/users/export" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"format": "csv",
"fields": ["id", "email", "name", "created_at", "last_login_at"],
"filters": {
"status": "active",
"created_after": "2024-01-01"
},
"include_pii": true
}'

レスポンス例

{
"job_id": "job_export_abc123",
"status": "pending",
"created_at": 1706140800
}

ユーザー一括更新開始

複数ユーザーを一括で更新します。

エンドポイント

POST /api/admin/jobs/users/bulk-update

リクエストボディ

フィールド必須説明
filterobject対象ユーザーのフィルタ条件
updatesobject更新内容

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/jobs/users/bulk-update" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"metadata.department": "Engineering"
},
"updates": {
"metadata.building": "Tower A"
}
}'

レスポンス例

{
"job_id": "job_bulk_update_def456",
"status": "pending",
"estimated_affected_users": 150,
"created_at": 1706140800
}

レポート生成開始

各種レポートを生成します。

エンドポイント

POST /api/admin/jobs/reports/generate

リクエストボディ

フィールド必須説明
report_typestringレポートタイプ
formatstring-出力形式(pdf, csv, xlsx
date_rangeobject-日付範囲
optionsobject-レポートオプション

レポートタイプ

タイプ説明
user_activityユーザーアクティビティレポート
authentication_summary認証サマリーレポート
security_auditセキュリティ監査レポート
compliance_statusコンプライアンスステータスレポート

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/jobs/reports/generate" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"report_type": "authentication_summary",
"format": "pdf",
"date_range": {
"start": "2024-01-01",
"end": "2024-01-31"
},
"options": {
"include_charts": true,
"group_by": "day"
}
}'

レスポンス例

{
"job_id": "job_report_ghi789",
"status": "pending",
"created_at": 1706140800
}

ジョブ結果ダウンロード

完了したジョブの結果ファイルをダウンロードします。

エンドポイント

GET /api/admin/jobs/:id/download

パスパラメータ

パラメータ必須説明
idstringジョブID

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/jobs/job_export_abc123/download" \
-H "Authorization: Bearer {token}" \
-o export.csv

レスポンス

ファイルのバイナリデータ、または署名付きダウンロードURLを返します。

{
"download_url": "https://storage.authrim.com/exports/xxx?signature=yyy",
"expires_at": 1706144400,
"filename": "users_export_2024-01-22.csv",
"size_bytes": 524288
}

ジョブエラーコード

エラーコード説明
JOB_NOT_FOUNDジョブが見つからない
JOB_ALREADY_COMPLETEDジョブは既に完了している
JOB_ALREADY_CANCELLEDジョブは既にキャンセルされている
IMPORT_INVALID_FORMATインポートファイルの形式が不正
IMPORT_VALIDATION_ERRORインポートデータのバリデーションエラー
EXPORT_TOO_LARGEエクスポートデータが大きすぎる
REPORT_GENERATION_FAILEDレポート生成に失敗