本文へ移動
AI Dev Lab Japan AI開発ツール、AIコーディングエージェント、M...

Codexに管理画面の一括操作を任せる前に決めること

Codexに管理画面の一括操作を任せる前に決めることの要点をタイトルと確認軸で示すアイキャッチ

3行まとめ

Visualbulk操作前の4点実行前に分けます。
Preview

対象。

Dry-run

検証。

Audit

記録。

Undo

戻す。

一括操作は、実行ボタンより前の確認で安全性が決まります。

  • Codexに管理画面の一括操作を任せる時は、対象選択、preview、dry-run、confirmation、上限、権限、audit log、undoを先に決めます。
  • bulk update/deleteは、1回のクリックで広い影響が出ます。対象件数、サンプル、差分、実行者、理由、戻し方をUIとlogに残します。
  • 途中失敗や二重実行に備え、operation ID、idempotency、status、retry、skip済み対象を設計してから実装します。

管理画面の一括操作は、とても便利です。ユーザーを一括停止する。記事をまとめて公開する。タグを付け替える。古いデータをarchiveする。CSVで対象を選ぶ。Codexに頼めば、checkbox、bulk action、API、jobはすぐ作れます。

ただ、一括操作は事故の影響も大きいです。対象filterを間違える。件数を見ずに実行する。二重に押す。途中で失敗する。誰が実行したか分からない。戻せない。こうなると、UIとしては動いていても運用では怖い機能になります。

この記事では、Codexに管理画面の一括操作を任せる前に決めることを整理します。運用手順全体は公開済みのCodexに運用手順を任せる前に決めることで扱いました。ここでは、管理画面やadmin APIのbulk operationへ絞ります。

この記事でわかること

Visual確認する材料Codexへ渡す前の整理です。
Scope

範囲。

Limit

上限。

Owner

承認。

Replay

再実行。

bulk operationは、対象、回数、責任者、戻し方を明確にします。

  • 一括操作をCodexへ頼む前に決める7項目
  • previewとdry-runを分ける理由
  • confirmationをただの「OK」ボタンにしない考え方
  • idempotencyとoperation statusで二重実行を防ぐ方法
  • audit logに残すべき項目
  • undoできる操作とrollbackが必要な操作の分け方
  • Codexへそのまま渡せる依頼packet
  • reviewで止めるべきbulk operation差分

この記事は、破壊的操作を自動化するための記事ではありません。誤操作を減らすための設計整理です。Kubernetesのdry-runでは、API serverに検証させつつ永続化しない考え方が説明されています。Stripeのidempotency Docsでは、同じ操作を安全にretryする考え方が説明されています。GitHubのaudit log Docsでは、活動を後から確認・exportできる記録として扱う考え方が説明されています。

前提知識

Visual見る一次情報操作安全の材料です。
項目内容見方
Dry-run未保存。
Idempotency重複防止。
Audit記録。
Rollback復旧。

preview、dry-run、idempotency、audit logはそれぞれ役割が違います。

bulk operationは、UIではなく運用操作です。

見た目はcheckboxとbuttonでも、実際には多くのデータを変えるjobです。対象選択、権限、実行条件、実行履歴、失敗時の再開、undo、通知が必要になります。

bulk operationはUIではなく運用操作

「選択したものを一括で変更する」だけだと、対象が小さい時は動きます。しかし、対象が1万件、複数tenant、権限違い、外部API連携、メール送信を伴う場合は、運用設計が必要です。

dry-runとpreviewを分ける

previewは、ユーザーに対象や差分を見せることです。dry-runは、実行前にserver側で検証し、保存せずに結果を試算することです。どちらも必要ですが、役割は違います。

一括操作前に決める7項目

Visual7つの決定UIを作る前に決めます。
項目内容見方
Target対象。
Action操作。
Limit上限。
Preview確認。
Approval承認。
Audit記録。
Undo戻し。

一括操作は、誰が何に何をするかを実行前に固定します。

Codexへ頼む前に、7項目を決めます。

項目決めること曖昧なまま起きること
target対象条件と除外条件誤対象を含む
action何を変えるか副作用が混ざる
limit件数、時間、raterunawayになる
preview件数、sample、diff見ずに実行する
approval誰が承認するか責任が曖昧
audit何を残すか後から追えない
undo戻し方事故後に迷う

CodexはUIとAPIを作れますが、どの操作を誰が承認すべきか、どの件数から危険か、戻せるかは知りません。

操作を分類する

bulk operationには、軽い操作と重い操作があります。タグ付け、状態変更、メール送信、削除、外部API呼び出し、権限変更では危険度が違います。

上限を持つ

件数上限、1回あたり時間、並列数、対象tenant、操作種類を制限します。上限を超える場合は、別承認やjob化へ回します。

reviewで見ること

reviewでは、対象filter、除外条件、件数表示、preview、dry-run、confirmation、audit log、undo、権限、rate limitを見ます。

対象選択とpreviewを固定する

Visual対象確認の流れ実行前に見せます。
  1. 1Filter

    絞る。

  2. 2Count

    件数。

  3. 3Sample

    例。

  4. 4Diff

    差分。

  5. 5Confirm

    確認。

対象件数とサンプルを見せるだけで、誤操作をかなり減らせます。

一括操作では、対象がすべてです。

filter条件、選択件数、除外件数、代表sample、変更前後のdiffを見せます。CSV importなら、読み込んだ行数、対象一致数、失敗行、権限外行も出します。

件数を目立たせる

「3件」と「30,000件」では意味が違います。件数はbuttonの近くに出します。一定件数を超えたら追加確認を出します。

sampleを見せる

対象の一部をsample表示します。IDだけではなく、名前、状態、tenant、最終更新、変更後の状態を出します。

注意点

filter変更後にpreviewを再計算せず、古い対象で実行するのは危険です。previewしたoperation IDと実行対象を結びます。

dry-runとconfirmationを入れる

Visual実行前gate保存せず検証します。
  1. 1Validate

    検証。

  2. 2Dry-run

    試算。

  3. 3Warn

    警告。

  4. 4Approve

    承認。

  5. 5Execute

    実行。

dry-runは保存しない検証、confirmationは人間の実行判断です。

dry-runは、保存せずに検証する処理です。

Kubernetesのdry-runは、API serverにadmissionやvalidationを通しつつ永続化しない仕組みとして説明されています。管理画面でも同じ発想で、実行前にserver側で「何が起きるか」を計算します。

dry-runで見ること

  • 対象件数
  • 成功予定件数
  • 権限不足件数
  • validation失敗件数
  • 変更前後の差分
  • 外部副作用の有無
  • 推定時間

confirmationで見ること

confirmationは、人間が実行を承認する画面です。単なる「OK」ではなく、操作名、対象件数、危険度、戻し方、実行者、理由を確認します。

条件

破壊的操作では、対象件数や操作名を入力させる、別ownerの承認を求める、時間帯を制限するなどのgateを入れます。

idempotencyと再実行を設計する

Visual重複実行対策同じ操作を安全に扱います。
Key

操作ID。

Status

状態。

Retry

再試行。

Skip

処理済み。

途中失敗後に再実行しても、同じ対象を二重処理しない設計にします。

bulk operationは途中で失敗します。

network timeout、worker restart、外部API rate limit、DB lock、権限変更、ユーザー操作の二重click。これらに備えて、operation IDとstatusを持ちます。

Stripeのidempotency Docsでは、同じkeyでretryしても重複操作を避ける考え方が説明されています。bulk operationでも、同じoperationを再実行した時に二重変更しない設計が必要です。

operation IDを作る

実行ごとにoperation IDを作ります。対象snapshot、実行者、理由、dry-run結果、approval、status、attemptを紐づけます。

対象ごとのstatusを持つ

全体statusだけでなく、対象ごとのstatusを持ちます。pendingdoneskippedfailedrolled_backのように分けます。

評価基準

同じbuttonを2回押しても、途中失敗後にresumeしても、処理済み対象が二重に変わらないなら良い設計です。

audit logと権限を残す

Visual監査項目あとから追える記録です。
項目内容見方
Actor実行者。
Target対象。
Before前。
After後。
Reason理由。

audit logがあると、実行後に何が起きたかを説明できます。

一括操作ではaudit logが必要です。

GitHubのaudit log Docsでは、actor、action、created_atなどの活動記録をexportできることが説明されています。自社管理画面でも、誰が、いつ、何を、どの理由で、何件に対して実行したかを残します。

残す項目

  • actor
  • role
  • operation ID
  • target filter
  • target count
  • sampleまたはsnapshot参照
  • action
  • reason
  • approval
  • result
  • before/after summary

権限を分ける

閲覧できる人、previewできる人、dry-runできる人、実行できる人、rollbackできる人を分けます。実行権限を持つ人だけが対象を見られるとは限りません。

undoとrollbackを決める

Visual戻し方実行後の対応です。
  1. Snapshot

    控え。

  2. Execute

    実行。

  3. Monitor

    監視。

  4. Undo

    戻す。

  5. Report

    報告。

undoできる操作と、補償処理が必要な操作を分けます。

undoできる操作と、rollbackや補償処理が必要な操作を分けます。

タグ付けや状態変更はundoしやすい場合があります。削除、外部送信、メール配信、権限変更、課金処理は戻しにくいことがあります。

snapshotを残す

戻す可能性があるなら、変更前の値をsnapshotとして残します。ただし、PIIやsecretをsnapshotに入れすぎないようにします。

rollbackではなくroll-forwardのこともある

一部の操作は完全に戻せません。訂正通知、追加変更、再処理、手動確認で進めるほうがよい場合があります。

戻せない操作ほど、実行前のpreview、承認、対象snapshot、実行後reportを厚くします。

Codexへ渡す依頼packet

Visual依頼packetそのまま渡せる型です。
項目内容見方
Scope範囲。
Gate確認。
Limits上限。
Audit記録。
Undo戻し。

packet化すると、Codexが危険な一括実行UIを作りにくくなります。

Codexへは、次のようなpacketで渡します。

目的:
  管理画面で選択した記事にcategoryを一括付与する。

対象:
  現在のfilter結果から選択したarticleのみ。
  publish済み記事は対象外。

preview:
  件数、sample 20件、変更前category、変更後categoryを表示する。

dry-run:
  server側でvalidationし、保存せず成功予定/失敗予定を返す。

confirmation:
  100件超はcategory名を入力して確認する。

idempotency:
  operation IDを作り、二重clickやretryで重複実行しない。

audit:
  actor、target count、filter、before/after summary、reason、resultを残す。

undo:
  変更前category snapshotから戻せるようにする。

このpacketがあると、Codexは危険な一括実行UIではなく、確認と監査のある機能を作りやすくなります。

よくある失敗

Visualbad patternsbulk操作で崩れやすい点です。
No preview

対象不明。

No limit

無制限。

No audit

追えない。

No undo

戻せない。

bulk操作の事故は、対象が見えないまま実行できる時に起きます。

previewなしで実行できる

対象が見えないまま実行できるbulk operationは危険です。件数、sample、diffを見せます。

filter変更と実行対象がズレる

preview後にfilterが変わると、見た対象と実行対象が違うことがあります。operation IDと対象snapshotを使います。

二重clickで二重実行される

button disableだけでは不十分です。server側でoperation IDとidempotencyを持ちます。

audit logがない

実行後に誰が何をしたか分からないと、復旧と説明ができません。audit logを残します。

undoできると思い込む

外部送信や削除は戻せないことがあります。undo可能性を操作ごとに分けます。

FAQ

Visual判断の入口迷った時の見方です。
項目内容見方
Delete?厳格。
Update?差分。
Retry?冪等。
Undo?事前。

迷ったら、同じ操作をもう一度押しても安全かを確認します。

confirmation modalだけで十分ですか

十分ではありません。preview、dry-run、件数上限、権限、audit log、undoと組み合わせます。

すべてのbulk操作にdry-runが必要ですか

影響が小さい操作では簡易previewで足りる場合もあります。破壊的、外部副作用あり、大量対象ではdry-runを強く検討します。

undoは必須ですか

操作によります。undoできない操作では、実行前gateを強くし、rollbackではなく補償手順を決めます。

Codexに管理画面のbulk操作を作らせてもよいですか

作らせてもよいですが、対象選択、dry-run、権限、audit、undoは人間が条件を渡し、reviewします。

何件から危険ですか

固定の正解はありません。対象データの重要度、外部副作用、rollback可否、tenant影響で決めます。件数だけでなく操作内容を見ます。

次に読むなら

参照した主な情報源

更新履歴

Visual更新メモ公開時点の整理です。
  1. 2026.06.01

    初版。

管理画面の操作条件は変わるため、導入時に最新Docsと社内規程を確認します。

  • 2026.06.01: 初版公開。Codexへ管理画面の一括操作を任せる前のpreview、dry-run、idempotency、audit log、undoを整理しました。