Quickstart

ワークフロートピックへのパブリッシュ

お客様のシステムからワークフロートピックにパブリッシュし、ワークフローを自動実行する最短手順です。

概要

CRISIS のワークフロー機能は、ワークフロートピックワークフロー の 2 つの概念で構成されています。

このガイドでは、最小限のコードで Publish API を呼び出す方法を解説します。 通知設定、制御ポリシー、フィルター条件など詳細な仕様は Incoming Webhooks ガイド を参照してください。

前提条件

  • サービスアカウントとアクセストークンを作成済み(はじめに 参照)
  • サービスアカウントの IAM に organization.workflow_topic:publish パーミッションを付与済み
  • Web UI でワークフロートピックを作成し、ワークフローを紐づけ済み
  • organizationIdtopicId を把握済み

最小コード例

エンドポイント

POST /v1/organizations/{organizationId}/workflow_topics/{topicId}/publish

必須フィールド

フィールド説明
data任意の JSON オブジェクト。ワークフロー条件(フィルター)の評価対象
statusACTUAL(実災害)/ DRILL(訓練)/ TEST(テスト)

Node.js(fetch)

export async function publishWorkflowTopic({
  organizationId, topicId, accessToken,
}) {
  const response = await fetch(
    `https://api.crisis.jp/v1/organizations/${organizationId}/workflow_topics/${topicId}/publish`,
    {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${accessToken}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        status: 'ACTUAL',
        data: {
          source: 'monitoring_system',
          service: 'payment-api',
          severity: 'critical',
          message: '応答時間が閾値を超過',
        },
      }),
    }
  );

  if (!response.ok) {
    const error = await response.json();
    throw new Error(
      `CRISIS API error: ${error.ErrorCode} (${response.status})`
    );
  }

  return response.json();
}

cURL

curl -X POST https://api.crisis.jp/v1/organizations/{organizationId}/workflow_topics/{topicId}/publish \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "source": "monitoring_system",
      "service": "payment-api",
      "severity": "critical",
      "message": "応答時間が閾値を超過"
    },
    "status": "ACTUAL"
  }'

⚠ アクセストークンの管理

アクセストークンをソースコードや環境変数に直接埋め込まないでください。 AWS Secrets Manager、Google Secret Manager、HashiCorp Vault などのシークレット管理サービスを使用して安全に保管してください。

レスポンス

パブリッシュが成功すると 202 Accepted で以下のレスポンスが返されます。

{
  "message_id":   "msg-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "published_at": "2026-04-10T12:00:00Z",
  "topic_id":     "topic-xxxxxxxx",
  "topic_key":    "ops.service_alert"
}

エラーハンドリング

よくあるエラーと対処方法です。詳細は エラーレスポンスガイド を参照してください。

401 Unauthorized — アクセストークンが無効か期限切れです。トークンを再確認してください。
403 Forbidden — サービスアカウントに organization.workflow_topic:publish 権限がありません。IAM 設定を確認してください。
404 Not FoundorganizationId または topicId が正しくありません。
422 Unprocessable Entity — リクエストボディの形式が不正です。datastatus が含まれているか確認してください。
5XX — サーバー側の一時的な問題です。指数バックオフでリトライしてください。

実装チェックリスト

パブリッシュ連携を本番環境にデプロイする前に、以下を確認してください。

✅ Web UI でワークフロートピックを作成し、ワークフローを紐づけ済みか
✅ サービスアカウントの IAM に organization.workflow_topic:publish 権限を付与したか
data の構造がワークフローの条件設定と一致しているか
statusACTUAL / DRILL / TEST で正しく使い分けているか
✅ 4XX / 5XX エラーのハンドリングとリトライ方針を実装したか
✅ アクセストークンを Secret Manager 等で安全に管理しているか
TEST ステータスで本番トピックに疎通確認を行ったか

次のステップ