Skip to content

キャンバス

キャンバスは、AIエージェントが分析結果などを HTML として作成する成果物です。 作成時に専用の URL が発行され、作成したセッションが削除された後も残ります。

キャンバスにはデータから得た集計結果や示唆が載るため、その閲覧・書き出し・共有を 記録します。共有では、閲覧できるユーザーの指定と、リンクを知っている全員への公開 (パブリックリンク)を区別します。

公開されたキャンバスの閲覧とダウンロードは、ログインせずに行えます。 これは主体(actor)を特定できない操作のため、監査イベントとしては記録されません。

イベント一覧

イベントリソース説明
canvas.createcanvasキャンバスが作成された
canvas.opencanvasキャンバスが開かれた
canvas.exportcanvasキャンバスが書き出された
canvas.add_share_permissioncanvasキャンバスの閲覧権限が付与された
canvas.remove_share_permissioncanvasキャンバスの閲覧権限が削除された
canvas.publishcanvasキャンバスが公開された
canvas.change_shared_versioncanvasキャンバスの共有バージョンが変更された
canvas.unpublishcanvasキャンバスの公開が解除された
canvas.deletecanvasキャンバスが削除された

イベント詳細

canvas.create 準備中

AIエージェントによるキャンバスの作成を記録します。

フィールド
event.codecanvas.create
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

サンプル

どのセッションから作成されたかは context.ai_agent から辿れます。

json
{
  "event": {
    "code": "canvas.create",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "context": {
    "ai_agent": {
      "ai_profile": {
        "type": "ai_profile",
        "uid": "63e1be654aa70ad689601c10",
        "name": "Default"
      },
      "session": {
        "type": "agent_session",
        "uid": "63e1be654aa70ad689601c01",
        "name": "Weekly sales analysis"
      },
      "tool": "canvas_create"
    }
  },
  ...
}

canvas.open 準備中

認証済みユーザーによるキャンバスの閲覧を記録します。

フィールド
event.codecanvas.open
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

サンプル

json
{
  "event": {
    "code": "canvas.open",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  ...
}

canvas.export 準備中

認証済みユーザーによるダウンロードと、AIエージェントによるキャンバスの HTML / PDF 書き出しを記録します。

フィールド
event.codecanvas.export
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra書き出し形式

extra

ダウンロードされたファイルの形式が入ります。

名前必須説明
formatCanvasExportFormat必須書き出し形式

サンプル

PDF のダウンロード
json
{
  "event": {
    "code": "canvas.export",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "extra": {
    "format": "pdf"
  },
  ...
}
HTML のダウンロード
json
{
  "event": {
    "code": "canvas.export",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "extra": {
    "format": "html"
  },
  ...
}
AIエージェントによる書き出し

外部サービスへの送信のためにエージェントが書き出した場合です。 送信先は同じ request.uidagent_connector.call_api から辿れます。

json
{
  "event": {
    "code": "canvas.export",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "context": {
    "ai_agent": {
      "ai_profile": {
        "type": "ai_profile",
        "uid": "63e1be654aa70ad689601c10",
        "name": "Default"
      },
      "session": {
        "type": "agent_session",
        "uid": "63e1be654aa70ad689601c01",
        "name": "Weekly sales analysis"
      },
      "tool": "canvas_export"
    }
  },
  "extra": {
    "format": "pdf"
  },
  ...
}

canvas.add_share_permission 準備中

ユーザー・グループ・全メンバーへのキャンバス閲覧権限の付与を記録します。

フィールド
event.codecanvas.add_share_permission
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant付与先と付与権限
extra(なし)

grant

閲覧権限が付与された相手(ユーザー・グループ・全メンバー)と付与された権限が入ります。

サンプル

ユーザーへの権限付与
json
{
  "event": {
    "code": "canvas.add_share_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "canvas",
      "uid": "63e1be654aa70ad689601c20",
      "name": "Q1 Revenue Breakdown"
    },
    "grantee": {
      "type": "user",
      "uid": "63e1be654aa70ad689601bec",
      "email_addr": "taro@example.com"
    },
    "role": {
      "new": "canvas.viewer"
    }
  },
  ...
}
グループへの権限付与
json
{
  "event": {
    "code": "canvas.add_share_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "canvas",
      "uid": "63e1be654aa70ad689601c20",
      "name": "Q1 Revenue Breakdown"
    },
    "grantee": {
      "type": "group",
      "uid": "63e1be654aa70ad689601be3",
      "name": "Data Engineers"
    },
    "role": {
      "new": "canvas.viewer"
    }
  },
  ...
}
ワークスペース全員への権限付与

特定の相手ではなくワークスペースの全メンバーへ開放した場合です。

json
{
  "event": {
    "code": "canvas.add_share_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "canvas",
      "uid": "63e1be654aa70ad689601c20",
      "name": "Q1 Revenue Breakdown"
    },
    "grantee": {
      "type": "workspace",
      "uid": "63e1be654aa70ad689601be0",
      "name": "Acme Analytics"
    },
    "role": {
      "new": "canvas.viewer"
    }
  },
  ...
}

canvas.remove_share_permission 準備中

キャンバス閲覧権限の削除を記録します。

フィールド
event.codecanvas.remove_share_permission
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant削除先と削除された権限
extra(なし)

grant

閲覧権限が削除された相手(ユーザー・グループ・全メンバー)と削除された権限が入ります。

サンプル

json
{
  "event": {
    "code": "canvas.remove_share_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "canvas",
      "uid": "63e1be654aa70ad689601c20",
      "name": "Q1 Revenue Breakdown"
    },
    "grantee": {
      "type": "user",
      "uid": "63e1be654aa70ad689601bec",
      "email_addr": "taro@example.com"
    },
    "role": {
      "old": "canvas.viewer"
    }
  },
  ...
}

canvas.publish 準備中

リンクを知っている全員へのキャンバスの公開を記録します。

フィールド
event.codecanvas.publish
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra公開されたバージョン

extra

公開開始時点で公開対象として固定されたバージョンの番号が入ります。

名前必須説明
shared_revint必須公開対象として固定されたバージョンの番号

サンプル

json
{
  "event": {
    "code": "canvas.publish",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "extra": {
    "shared_rev": 3
  },
  ...
}

canvas.change_shared_version 準備中

共有相手が閲覧できるキャンバスのバージョンの変更を記録します。 公開しているかどうかによらず記録します。

フィールド
event.codecanvas.change_shared_version
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change変更前後の共有バージョン
grant(なし)
extra(なし)

change

変更前後のバージョンの番号が入ります。 バージョンを固定していないときは null で、共有相手には常に最新のバージョンが見えます。

名前モード必須説明
shared_revint必須変更前後の共有対象のバージョンの番号

サンプル

固定するバージョンの差し替え
json
{
  "event": {
    "code": "canvas.change_shared_version",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "shared_rev",
        "old": 3,
        "new": 5
      }
    ]
  },
  ...
}
バージョン固定の解除

共有相手に常に最新のバージョンが見えるようになります。

json
{
  "event": {
    "code": "canvas.change_shared_version",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "shared_rev",
        "old": 5,
        "new": null
      }
    ]
  },
  ...
}

canvas.unpublish 準備中

キャンバスの公開の解除を記録します。

フィールド
event.codecanvas.unpublish
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

サンプル

json
{
  "event": {
    "code": "canvas.unpublish",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  ...
}

canvas.delete 準備中

キャンバスの削除を記録します。

フィールド
event.codecanvas.delete
scope.typeworkspace
resource.typecanvas
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

サンプル

json
{
  "event": {
    "code": "canvas.delete",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "canvas",
    "uid": "63e1be654aa70ad689601c20",
    "name": "Q1 Revenue Breakdown",
    "path": "canvas/63e1be654aa70ad689601c20",
    "parts": [
      {
        "type": "canvas",
        "uid": "63e1be654aa70ad689601c20",
        "name": "Q1 Revenue Breakdown"
      }
    ],
    ...
  },
  ...
}

Enums

CanvasExportFormat

キャンバスの書き出し形式です。

説明
htmlHTML ファイル
pdfPDF ファイル

Codatum Audit Events 監査ログイベントカタログ