ジョブ管理
概要
ジョブ管理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
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | - | 取得件数(デフォルト: 20、最大: 100) |
cursor | string | - | ページネーションカーソル |
type | string | - | ジョブタイプでフィルタ |
status | string | - | ステータスでフィルタ |
ジョブステータス
| ステータス | 説明 |
|---|---|
pending | 待機中 |
running | 実行中 |
completed | 完了 |
failed | 失敗 |
cancelled | キャンセル |
リクエスト例
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
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ジョブID |
リクエスト例
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": "このメールアドレスは既に使用されています", } ], "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
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ジョブID |
リクエスト例
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_url | string | ○ | インポートファイルのURL |
file_format | string | - | ファイル形式(csv, json、デフォルト: csv) |
update_existing | boolean | - | 既存ユーザーを更新するか |
send_welcome_email | boolean | - | ウェルカムメールを送信するか |
field_mapping | object | - | フィールドマッピング |
リクエスト例
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ユーザーエクスポート開始
ユーザーデータをエクスポートします。
エンドポイント
POST /api/admin/jobs/users/export
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
format | string | ○ | 出力形式(csv, json) |
fields | string[] | - | エクスポートするフィールド |
filters | object | - | フィルタ条件 |
include_pii | boolean | - | PIIを含めるか(デフォルト: false) |
リクエスト例
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
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
filter | object | ○ | 対象ユーザーのフィルタ条件 |
updates | object | ○ | 更新内容 |
リクエスト例
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_type | string | ○ | レポートタイプ |
format | string | - | 出力形式(pdf, csv, xlsx) |
date_range | object | - | 日付範囲 |
options | object | - | レポートオプション |
レポートタイプ
| タイプ | 説明 |
|---|---|
user_activity | ユーザーアクティビティレポート |
authentication_summary | 認証サマリーレポート |
security_audit | セキュリティ監査レポート |
compliance_status | コンプライアンスステータスレポート |
リクエスト例
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
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ジョブID |
リクエスト例
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 | レポート生成に失敗 |