Playbook API
共通仕様
認証・エラー形式・レート制限・共通ヘッダーは API 概要・認証 を参照してください。
Playbook(自動化ワークフロー)の管理と実行を行う API です。 Playbook はユーザーが定義したノードを順に実行します。 ワークフロー実行基盤がスケジュールとトリガーに応じて起動します。
Playbook 一覧取得
レスポンス例:
[
{
"id": "pb-001",
"name": "Slack Alert Notification",
"trigger": [{"type": 104, "schedule": "*/5 * * * *"}],
"version": 3,
"updated_at": "2025-01-15T10:30:00Z"
}
]
Playbook 作成
リクエストボディ:
{
"name": "Block Malicious IP",
"conditions": [
{
"type": 1,
"name": "check_ip",
"code": "import requests\nresponse = requests.get(f'https://api.abuseipdb.com/api/v2/check?ipAddress={input_data[\"ip\"]}')\noutput = response.json()"
}
],
"trigger": [],
"environment_variables": [
{"key": "API_KEY", "value": "your-api-key"}
]
}
Playbook 詳細取得
Playbook 更新
Playbook 削除
編集申請と承認
Playbook のノード編集は、即時反映ではなく「編集申請 → 承認 → 反映」の流れで行います。
状態は pending(承認待ち)/ applied(反映済)/ rejected(却下)/ cancelled(取下げ)です。
旧 edit エンドポイントは廃止
旧 POST /api/user/<user_id>/playbook/<playbook_id>/edit/ は 410 Gone を返します。
以下の編集申請エンドポイントを使用してください。
編集申請の作成
リクエストボディ:
{
"client_version_number": 3,
"operations": [ { "type": "...", "target_name": "...", "value": {} } ],
"comment": "承認者向けの補足"
}
レスポンスには request_id と、変更の影響プレビュー(target_scope:差分、適用前後の対象ケース件数、サンプル等)が含まれます。
編集申請の一覧
クエリパラメータ: status、requester_uuid(me 可)、approver_uuid(me 可)、playbook_id、offset、limit(最大 200)
編集申請の詳細
?refresh=true を付けると、pending の申請は影響プレビューを再計算します。
承認 / 却下 / 取下げ
POST /api/user/<user_id>/playbook/edit-requests/<request_id>/approve/ # 申請者本人以外
POST /api/user/<user_id>/playbook/edit-requests/<request_id>/reject/ # body: {"reason": "..."}
POST /api/user/<user_id>/playbook/edit-requests/<request_id>/cancel/ # 申請者本人のみ
権限分離
自分が出した編集申請を自分で承認することはできません。
Playbook 実行
Playbook を手動で実行します。
リクエストボディ:
Webhook トリガー
外部システムから Playbook をトリガーします。
任意の JSON ボディを送信できます。
送信したボディは Playbook 内で input_data として参照できます。
実行履歴
履歴一覧
レスポンス例:
[
{
"id": "hist-001",
"execution_id": "exec-abc-123",
"status": "success",
"start_time": "2025-01-15T10:30:00Z",
"end_time": "2025-01-15T10:30:05Z"
}
]
履歴詳細
レスポンス例:
{
"id": "hist-001",
"execution_id": "exec-abc-123",
"status": "success",
"start_time": "2025-01-15T10:30:00Z",
"end_time": "2025-01-15T10:30:05Z",
"logs": [
{"node": "check_ip", "output": {"score": 95}, "status": "success"},
{"node": "block_ip", "output": {"blocked": true}, "status": "success"}
]
}
バージョン管理
バージョン一覧
特定バージョン取得
環境変数
一覧取得
更新
リクエストボディ:
削除
特定の環境変数取得
Playbook マージ
2 つの Playbook を 1 つに統合します。
自動テスト
テスト設定取得
テスト設定更新
テスト実行
ノードタイプ
Playbook のノードは conditions 配列内で定義されます。
| type | 説明 |
|---|---|
1 |
Action - 処理の実行 |
2 |
Condition (If/Else) - 条件分岐 |
4 |
Loop - 繰り返し処理 |
Condition ノード構造
{
"type": 2,
"name": "check_severity",
"code": "output = input_data['severity'] == 'high'",
"true": [
{"type": 1, "name": "escalate", "code": "..."}
],
"false": [
{"type": 1, "name": "log_only", "code": "..."}
]
}
トリガータイプ
| type | 説明 | 設定 |
|---|---|---|
104 |
スケジュール | schedule フィールドに cron 式 |