共有されたIDMP(統合データ管理プラットフォーム)のコマンドラインツール向けルール。要素モード(個別の項目を編集する方式)とテンプレートモード(型板を使う方式)の使い分け、ビジネスルートの根本となる要素IDの解決、危険な書き込み操作の確認、および結果の検証に対応しています。
Shared IDMP CLI rules for choosing element mode vs template mode, resolving business-root rootElementId, acknowledging risky writes, and verifying results.
DELETE、書き込み可能な POST / PUT / PATCH、--ack-risk コマンド、またはローカル破壊ヘルパー(config remove / profile remove / auth logout --clear)を実行する前に、エージェントは以下の 4 項目を表示してから、ユーザーが明確に「yes」と入力するまで待機してから実行する必要があります。
schemaPath + パラメータの概要(シークレット情報はマスク)。読み取り専用コマンド(get、list、search、path、tree、new-name、*-search、*-query、forecast)は確認が不要です。詳細な文言と使用可能なテンプレートについては references/idmp-safety-rules.md を参照してください。
| モード | CLI ファミリ | 次のような場合に使用 |
|---|---|---|
| 要素モード | idmp-cli element ...、attribute ...、analysis ...、panel ...、dashboard ...、event ... |
対象が実際の要素、本番データ、本番ダッシュボード、または本番イベント |
| テンプレートモード | idmp-cli template ...、attr-template ...、analysis-template ...、panel-template ... |
対象が再利用可能なテンプレート、テンプレート属性、またはテンプレート分析 |
モードを最初に選択してください。elementId と elementTemplateId を混在させないでください。
idmp-cli config init --server http://your-idmp:6042 --username admin@example.com
idmp-cli doctor --offline
idmp-cli auth check
idmp-cli auth list
idmp-cli doctor
ログインが必要な場合:
printf '%s\n' "$IDMP_E2E_PASSWORD" | idmp-cli auth login --username "$IDMP_E2E_USERNAME" --password-stdin
| 文脈 | 明確にする理由 |
|---|---|
| 動作モード | 作成・更新の処理は「要素モード」か「テンプレートモード」かの選択に依存する |
| 所有者 | 名前の検索やトリガータイプ・関連オブジェクトを調べる前に、最終的な elementId または elementTemplateId が必要 |
| ビジネスルート | 要素モードの書き込みは、実際の書き込みが子要素に移る場合でも、element path の上位 rootElementId が必要なことが多い。rootElementId は最終的な葉の所有者ではなく、ビジネス上の祖先として扱う |
| 名前の候補 | analysis.analyses.new-name、panel.panels.new-name、dashboard.dashboards.new-name はいずれも提案 name が必要。所有者 ID だけでは呼び出さない |
| スコープ詳細 | applyOnSelf、子テンプレートのスコープ、ワークフローが実データを持つ葉を対象とするかを、書き込み前に決定する |
| 検証対象 | どの get、list、実行時状態確認、イベント、または配信再確認でワークフローが完了したことを証明するかを決定する |
get、list、実行時チェック、または配信再確認がバックエンドの変更を確認するまで未完了と扱う。demo ルートが存在すると仮定しない。現在見えている最初のレベルのルートから開始し、共有の葉を所有するそのツリーの配下に必要なテンポラリスコープを作成する。trigger-types list が空の場合、作成フローをデータを持つ葉の要素に移し、ビジネスルートを rootElementId として保持する。new-name は正しいペイロード形式でのみ使用する。分析・パネル・ダッシュボードは所有者と候補 name が必要、属性 new-name は所有者スコープだけで OK。analysis.analyses.new-name は POST リザーブコールのため --ack-risk が必須、パネル・ダッシュボード・属性の new-name コマンドは読み取り専用のままです。event.events.list --params '{"analysisId":...}' はノイズの多い共有環境で status=Unack だけでフィルタリングするより確実です。Ready のまま残る可能性、アラートは fill-history が必要な可能性、通知履歴は再送信または新規イベント作成より遅れる可能性があります。id、所有者スコープ、予約された名前、予期されたステータスビットを確認する。list 再確認または構造化された不在 get で削除を証明する。rootElementId を再利用する前に element elements path と element fullpath get でビジネスルート境界を証明する。search、list、または path で対象を特定する。get、attributes、analyses list、または関連リストエンドポイントで現在の状態を読み取る。new-name、sub-templates、trigger-types、連絡先ポイント・イベントテンプレートの前提条件など、依存関係を解決する。--dry-run でプレビューし、読み取り専用でない生成コマンドに --ack-risk を追加する。get または list で検証し、製品が実行状態を期待する場合はオブジェクトを再開する。rootElementId は現在の葉要素からではなく、要素パスのビジネスルートから来る。葉の所有者とビジネスルートは別の書き込み入力。applyOnSelf=false は設定が子テンプレートまたは階層スコープに依存することを意味する。sub-templates と trigger-types を先に読む。new-name を使用し、そのヘルパーに対して正しいペイロード形式を提供する。idmp-cli api を使用する。生成されたサービスコマンドを優先する。idmp-cli schema element.elements.sub-templates
idmp-cli schema analysis.analyses.create
idmp-cli schema attribute.elements.attributes-post
idmp-cli element elements search --params '{"keyword":"beijing","current":1,"limitSize":20}'
idmp-cli element elements path --params '{"elementId":123}'
idmp-cli analysis analyses list --params '{"elementId":123,"current":1,"size":20}'
idmp-cli auth check または idmp-cli doctor が失敗する場合、セッションと接続が正常になるまで書き込み作業を停止する。elementId を期待する場合(またはその逆)、リクエストを強制するのではなくモードを切り替える。rootElementId として再利用しない。パスを先に解決する。不明確なパスとは、element elements path、element fullpath get、element by-path list がルートから葉へのチェーンで一貫していないもの。get または list が変更を表示しない場合、ワークフローを未完了と扱い、別の変更を送信する前に再読み込みする。以下のみを使用:
IDMP_E2E_ENABLEDIDMP_BASE_URLIDMP_E2E_USERNAMEIDMP_E2E_PASSWORDidmp-cli doctor --offline でローカル準備状況を確認する。idmp-cli auth check でアクティブなセッションを確認する。idmp-cli schema element.elements.search と idmp-cli schema template.elements.get を比較して、選択したモードを検証する。idmp-cli element elements path --params '{"elementId":123}' で書き込み前にビジネスルートを解決する。idmp-cli schema analysis.analyses.create に続いて idmp-cli analysis analyses list --params '{"elementId":123,"current":1,"size":20}' で変更ワークフローをプレビューおよび検証する。Before executing any DELETE, non-readonly POST / PUT / PATCH, --ack-risk command, or local destructive helper (config remove / profile remove / auth logout --clear), the agent MUST print the 4 items below and then wait for an explicit user yes before running the command:
schemaPath + param summary (mask secrets).Read-only commands (get, list, search, path, tree, new-name, *-search, *-query, forecast) do not require this confirmation. For detailed wording and the ready-to-use template, see references/idmp-safety-rules.md.
| Mode | CLI families | Use when |
|---|---|---|
| element mode | idmp-cli element ..., attribute ..., analysis ..., panel ..., dashboard ..., event ... |
The target is a real element, live data, a live dashboard, or a live event. |
| template mode | idmp-cli template ..., attr-template ..., analysis-template ..., panel-template ... |
The target is a reusable template, template attribute, or template analysis. |
Pick the mode first. Do not mix elementId and elementTemplateId.
idmp-cli config init --server http://your-idmp:6042 --username admin@example.com
idmp-cli doctor --offline
idmp-cli auth check
idmp-cli auth list
idmp-cli doctor
If login is required:
printf '%s\n' "$IDMP_E2E_PASSWORD" | idmp-cli auth login --username "$IDMP_E2E_USERNAME" --password-stdin
| Context | Why it must be explicit |
|---|---|
| Working mode | Every create and update path depends on choosing element mode or template mode first. |
| Owner | You need the final elementId or elementTemplateId before you can discover names, trigger types, or related objects. |
| Business root | Element-mode writes often need a higher rootElementId from element path, even when the real write must move to a leaf owner. Treat rootElementId as the business-root ancestor, not as a synonym for the final leaf owner. |
| Candidate name seed | analysis.analyses.new-name, panel.panels.new-name, and dashboard.dashboards.new-name all need a proposed name; do not call them with only the owner ID. |
| Scope details | Decide applyOnSelf, child-template scope, and whether the workflow targets a real data-bearing leaf before any mutating request. |
| Verification target | Decide which get, list, runtime state, event, or delivery reread will prove that the workflow really finished. |
get, list, runtime check, or delivery reread proves the backend kept the change.demo root exists. Start from the currently visible first-level root that owns the shared leaf fixtures, then create any temporary middle-scope owners under that real tree.trigger-types list is empty on the current owner, move the create flow to a data-bearing leaf element and keep the business root as rootElementId.new-name only with the correct payload shape. Analyses, panels, and dashboards need both the owner and a candidate name; attribute new-name only needs the owner scope. analysis.analyses.new-name is a POST reserve call and still requires --ack-risk, while panel/dashboard/attribute new-name commands remain readonly.event.events.list --params '{"analysisId":...}' is more reliable than filtering only by status=Unack in a noisy shared environment.Ready, alerts can need fill-history, and notification history can lag behind resend or new-event creation.id, owner scope, reserved name, and expected status bits.list reread or a structured not-found get.element elements path plus element fullpath get before you reuse rootElementId.search, list, or path.get, attributes, analyses list, or the relevant list endpoint.new-name, sub-templates, trigger-types, and any contact-point or event-template prerequisites.--dry-run, and add --ack-risk for non-read-only generated commands.get or list; resume the object if the product expects a running state.rootElementId comes from the business root in the element path, not from the current leaf element. The leaf owner and the business root are separate write inputs.applyOnSelf=false means the configuration depends on child-template or hierarchical scope; read sub-templates and trigger-types first.new-name before creating attributes, analyses, panels, or dashboards when that helper exists, and provide the correct payload shape for that helper.idmp-cli api only when no structured command is sufficient.idmp-cli schema element.elements.sub-templates
idmp-cli schema analysis.analyses.create
idmp-cli schema attribute.elements.attributes-post
idmp-cli element elements search --params '{"keyword":"beijing","current":1,"limitSize":20}'
idmp-cli element elements path --params '{"elementId":123}'
idmp-cli analysis analyses list --params '{"elementId":123,"current":1,"size":20}'
idmp-cli auth check or idmp-cli doctor fails, stop mutating work until the session and connectivity are healthy again.elementId (or the reverse), switch modes instead of forcing the request.rootElementId; resolve the path first. An unclear path is one where element elements path, element fullpath get, and element by-path list do not round-trip to the same root-to-leaf chain.get or list does not show the change, treat the workflow as incomplete and re-read before sending another mutation.Only use:
IDMP_E2E_ENABLEDIDMP_BASE_URLIDMP_E2E_USERNAMEIDMP_E2E_PASSWORDidmp-cli doctor --offline.idmp-cli auth check.idmp-cli schema element.elements.search and idmp-cli schema template.elements.get.idmp-cli element elements path --params '{"elementId":123}'.idmp-cli schema analysis.analyses.create followed by idmp-cli analysis analyses list --params '{"elementId":123,"current":1,"size":20}'.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。