service-itsm-agentic-setup-cmdb-bundle-deploy
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDeploy the CMDB Foundation Bundle (Service Cloud ITSM)
部署CMDB Foundation包(Service Cloud ITSM)
Installs the CMDB Foundation (base) content bundle — the out-of-the-box configuration-item types,
schema, and content that make CMDB usable. This is Layer 4, the final layer of the CMDB setup
stack, and it requires the CMDB feature to already be enabled (Layer 2). Every call runs through the
Salesforce-hosted Headless-360 MCP server (server key ) via its four meta-tools
(, , , ). The org is derived from the OAuth JWT bound
to the current MCP session — the skill never handles an org id, alias, or credentials — so this works
identically against production and sandbox with no per-user MCP install.
headless-360discoverdescribedispatch_readonlydispatch安装CMDB Foundation(基础版)内容包——即让CMDB可用的开箱即用配置项类型、架构和内容。这是CMDB配置栈的第4层,也是最后一层,要求CMDB功能已启用(第2层)。所有调用都通过Salesforce托管的Headless-360 MCP服务器(服务器密钥)及其四个元工具(、、、)执行。组织信息来自绑定到当前MCP会话的OAuth JWT——该skill从不处理组织ID、别名或凭据——因此它在生产环境和沙盒环境中的工作方式完全相同,无需为每个用户安装MCP。
headless-360discoverdescribedispatch_readonlydispatchScope
范围
- In scope: confirming CMDB is enabled, reading the live bundle catalog, resolving the exact
version of the base bundle, installing the base () bundle, and verifying.
CMDB Foundation - Out of scope: enabling the CMDB feature / provisioning the ITOM tenant (Layers 0–2 —
), assigning permission sets (Layer 3 —
service-itsm-agentic-setup-cmdb-configure), installing optional add-on bundles (e.g. Component Identification Rules), CMDB record CRUD, or Discovery.service-itsm-agentic-setup-cmdb-access-assign
This skill installs the base bundle only. Optional add-ons are intentionally out of scope.
- 包含范围:确认CMDB已启用、读取实时包目录、解析基础包的确切版本、安装基础版()包并进行验证。
CMDB Foundation - 排除范围:启用CMDB功能/配置ITOM租户(第0-2层——)、分配权限集(第3层——
service-itsm-agentic-setup-cmdb-configure)、安装可选附加包(如组件识别规则)、CMDB记录增删改查(CRUD)或Discovery。service-itsm-agentic-setup-cmdb-access-assign
本skill仅安装基础包。可选附加包不在范围内。
Why order matters
顺序重要性
The bundle Connect APIs (, , ) are gated by
. Until the CMDB feature is enabled they return , so
this skill must run after the CMDB feature-enable skill has turned the feature on.
bundleListViewbundles/detailsbundleInstallationorgHasCMDBEnabled403 FUNCTIONALITY_NOT_ENABLEDOn top of the org gate, these reads also enforce the running user's own CMDB access, so a
here has two distinct causes — feature-off or user-has-no-access.
Step 1 disambiguates them via the feature status before sending the user anywhere; never assume a 403
means the feature is off.
403 FUNCTIONALITY_NOT_ENABLED包连接API(、、)受限制。在CMDB功能启用前,它们会返回,因此本skill必须在CMDB功能启用skill开启功能后运行。
bundleListViewbundles/detailsbundleInstallationorgHasCMDBEnabled403 FUNCTIONALITY_NOT_ENABLED除了组织层面的限制外,这些读取操作还会验证当前用户自身的CMDB访问权限,因此此处的有两种不同原因——功能未开启或用户无访问权限。步骤1会先通过功能状态区分这两种情况,再引导用户;切勿假设403意味着功能未开启。
403 FUNCTIONALITY_NOT_ENABLEDMechanism
机制
All operations dispatch through headless-360 MCP tools. Reads go through
, writes through — both take raw
HTTP: — not
. See for the exact / /
of every call. The four tools:
mcp__headless-360__dispatch_readonlymcp__headless-360__dispatch{"url": "<path>", "method": "GET|POST", "body"?: {...}, "queryParams"?: {...}}{operation_id, arguments}references/mcp-invocation.mdurlmethodbody- — semantic search over the indexed operation catalog (discovery / confirmation only).
mcp__headless-360__discover - — pull the full input schema and canonical route before the install POST.
mcp__headless-360__describe - — the dispatcher for every read (GET).
mcp__headless-360__dispatch_readonly - — the dispatcher for every write (POST/PATCH).
mcp__headless-360__dispatch
The skill never handles credentials — the org is bound to the current OAuth session. If a
call returns an auth error, tell the user to re-authenticate the headless-360 MCP connection (and
confirm the session points at the intended org), then stop.
dispatch*所有操作都通过headless-360 MCP工具调度。读取操作通过执行,写入操作通过执行——两者都接受原始HTTP请求:——而非。有关每个调用的确切//,请参阅。四个工具的作用如下:
mcp__headless-360__dispatch_readonlymcp__headless-360__dispatch{"url": "<path>", "method": "GET|POST", "body"?: {...}, "queryParams"?: {...}}{operation_id, arguments}urlmethodbodyreferences/mcp-invocation.md- ——对已索引的操作目录进行语义搜索(仅用于发现/确认)。
mcp__headless-360__discover - ——在安装POST请求前拉取完整的输入架构和规范路由。
mcp__headless-360__describe - ——所有读取(GET)操作的调度器。
mcp__headless-360__dispatch_readonly - ——所有写入(POST/PATCH)操作的调度器。
mcp__headless-360__dispatch
该skill从不处理凭据——组织信息绑定到当前OAuth会话。如果调用返回认证错误,请告知用户重新认证headless-360 MCP连接(并确认会话指向目标组织),然后停止操作。
dispatch*Clarifying questions
澄清问题
Ask only what you cannot infer from conversation:
- Which org? Confirm the target org and state plainly that content will be installed into this org (a write). For production, get explicit confirmation.
Do not re-ask for anything the user already provided; pre-populate and note "(from conversation)".
仅询问无法从对话中推断出的信息:
- 目标组织是哪个?确认目标组织,并明确告知用户内容将安装到该组织中(写入操作)。对于生产环境,需获得用户明确确认。
请勿重复询问用户已提供的信息;预先填充并标注“(来自对话)”。
Workflow
工作流
Sequential. Always read before you write — read the catalog and resolve the exact version before
installing. Never guess a version string.
按顺序执行。始终先读取再写入——在安装前先读取目录并解析确切版本。切勿猜测版本字符串。
Step 1 — Confirm CMDB is enabled (read, gate)
步骤1——确认CMDB已启用(读取,限制)
text
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundleListView", "method": "GET" })- → CMDB is enabled; the response lists available bundles and their install status. Proceed.
200 - → ambiguous — disambiguate before telling the user CMDB is off. This read enforces both the org gate and the running user's own CMDB access, so a 403 has two possible causes. Check the feature status to tell them apart:
403 FUNCTIONALITY_NOT_ENABLEDtextdispatch_readonly({ "url": "/services/data/v67.0/connect/setup/discovery/feature/service-cloud-itsm-cmdb-integration/status", "method": "GET" })- → the CMDB feature isn't enabled. STOP and route the user to the CMDB feature-enable skill (
status != ENABLED) first.service-itsm-agentic-setup-cmdb-configure - → the feature is enabled; the running user simply lacks CMDB permission sets. STOP and route the user to the CMDB access-assign skill (
status == ENABLED) to grant themselves CMDB access — at minimum the read set, plus Type Manager for bundle management — then retry. Do NOT send them to the feature-enable skill; CMDB is already enabled.service-itsm-agentic-setup-cmdb-access-assign
From the response, identify the base bundle (CMDB Foundation) and note its
. If it is already installed at the latest version, tell the user there is
nothing to do.
bundleListViewcurrentInstalledVersiontext
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundleListView", "method": "GET" })- → CMDB已启用;响应中列出了可用包及其安装状态。继续执行。
200 - → 存在歧义——告知用户CMDB未开启前需先区分原因。此读取操作同时受组织层面限制和当前用户的CMDB访问权限限制,因此403有两种可能原因。通过功能状态检查区分:
403 FUNCTIONALITY_NOT_ENABLEDtextdispatch_readonly({ "url": "/services/data/v67.0/connect/setup/discovery/feature/service-cloud-itsm-cmdb-integration/status", "method": "GET" })- → CMDB功能未启用。停止操作并引导用户先使用CMDB功能启用skill(
status != ENABLED)。service-itsm-agentic-setup-cmdb-configure - → 功能已启用;当前用户只是缺少CMDB权限集。停止操作并引导用户使用CMDB权限分配skill(
status == ENABLED)为自己授予CMDB访问权限——至少需要读取权限集,加上Type Manager权限用于包管理——然后重试。请勿引导用户到功能启用skill;CMDB已启用。service-itsm-agentic-setup-cmdb-access-assign
从响应中识别基础包(CMDB Foundation)并记录其。如果已安装最新版本,告知用户无需进行任何操作。
bundleListViewcurrentInstalledVersionStep 2 — Resolve the exact base version (read)
步骤2——解析基础包的确切版本(读取)
Do NOT guess or hard-code the version. Read the authoritative version from bundle details:
text
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundles/details", "method": "GET", "queryParams": { "bundleIdentifier": "base" } })Read from the catalog and use that string verbatim for the install — do NOT strip,
add, or reformat any characters (including a leading ). The install endpoint matches the version by
exact string equality against the registry, and the registry stores versions exactly as the catalog
reports them (e.g. ), so the value must be passed through unchanged.
latestVersionv"v3.0"You may only install the latest version. The install endpoint rejects any non-latest version
() — it does not support installing or
rolling back to an older version, so always resolve and install exactly that. If
already equals , stop — the base bundle is up to date.
"Target version <x> is not the latest available version"latestVersioninstalledVersionlatestVersionIfreturnsbundles/detailswhile403 FUNCTIONALITY_NOT_ENABLED(Step 1) returnedbundleListView: the org gate is fine, but the running user lacks the bundle-management permission.200requires the Type Manager role — the Reader / Owner / Type Reader sets are not sufficient. Route the user to the CMDB access-assign skill to grant Type Manager, then retry. As a fallback,bundles/detailsalready returns the base bundle'sbundleListViewandcurrentInstalledVersion, so you can resolve the version from Step 1's response if Type Manager cannot be assigned.latestVersion
请勿猜测或硬编码版本。从包详情中读取权威版本:
text
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundles/details", "method": "GET", "queryParams": { "bundleIdentifier": "base" } })从目录中读取,并原样使用该字符串进行安装——请勿删除、添加或重新格式化任何字符(包括开头的)。安装端点会通过与注册表的精确字符串匹配来验证版本,而注册表存储的版本与目录报告的完全一致(例如),因此必须原封不动地传递该值。
latestVersionv"v3.0"仅可安装最新版本。安装端点会拒绝任何非最新版本(错误信息:)——它不支持安装或回滚到旧版本,因此始终要解析并安装该版本。如果已等于,则停止操作——基础包已是最新版本。
"Target version <x> is not the latest available version"latestVersioninstalledVersionlatestVersion如果返回bundles/details但步骤1的403 FUNCTIONALITY_NOT_ENABLED返回bundleListView:组织层面的限制已满足,但当前用户缺少包管理权限。200需要Type Manager角色——Reader/Owner/Type Reader权限集不足以访问。引导用户使用CMDB权限分配skill授予Type Manager权限,然后重试。作为备选方案,bundles/details已返回基础包的bundleListView和currentInstalledVersion,因此如果无法分配Type Manager权限,可从步骤1的响应中解析版本。latestVersion
Step 3 — Confirm with the user (before the write)
步骤3——向用户确认(写入前)
Show the base bundle name, the version to be installed, and the target org. Get explicit confirmation
before the write. State plainly that this installs out-of-the-box CMDB content into the org.
展示基础包名称、待安装版本和目标组织。在写入操作前获得用户明确确认。明确说明这会将开箱即用的CMDB内容安装到组织中。
Step 4 — Install the base bundle (write)
步骤4——安装基础包(写入)
Call then
to confirm the input schema, then install:
discover(query="cmdb bundle installation")describe(id=<bundleInstallation operation id>)text
dispatch({ "url": "/services/data/v67.0/connect/cmdb/bundleInstallation", "method": "POST", "body": { "bundleIdentifier": "base", "version": "<latestVersion from Step 2, verbatim>" } })Both and are required, and must be the catalog's
string passed through unchanged. A response means the installation was initiated —
it may complete asynchronously.
bundleIdentifierversionversionlatestVersionsuccess: true调用,然后调用确认输入架构,接着执行安装:
discover(query="cmdb bundle installation")describe(id=<bundleInstallation操作ID>)text
dispatch({ "url": "/services/data/v67.0/connect/cmdb/bundleInstallation", "method": "POST", "body": { "bundleIdentifier": "base", "version": "<步骤2中的latestVersion,原样>" } })bundleIdentifierversionversionlatestVersionsuccess: trueStep 5 — Verify (read — do NOT trust the install response alone)
步骤5——验证(读取——请勿仅信任安装响应)
Re-read bundle details and confirm the base bundle now reports the installed version:
text
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundles/details", "method": "GET", "queryParams": { "bundleIdentifier": "base" } })installedVersion重新读取包详情并确认基础包现在显示已安装的版本:
text
dispatch_readonly({ "url": "/services/data/v67.0/connect/cmdb/bundles/details", "method": "GET", "queryParams": { "bundleIdentifier": "base" } })installedVersionRules / Constraints
规则/约束
| Constraint | Rationale |
|---|---|
Read | A 403 here means either CMDB isn't enabled or the user lacks CMDB access — disambiguate via feature status before acting |
Resolve the version from | The install endpoint matches the version by exact string equality against the registry, which stores it exactly as the catalog reports (e.g. |
| Install only the latest version | The endpoint rejects any non-latest version ( |
Install | This skill is scoped to the CMDB Foundation base bundle; optional add-ons are out of scope |
| Confirm the target org and the install with the user | Installing content is a real, hard-to-reverse write on a live org |
| Skip if already installed at latest | Avoid redundant installs; report "already up to date" |
Treat | Installation can be asynchronous |
| Never expose internal jargon to the user | Keep record IDs, HTTP status codes (403/400/500), API error codes ( |
| 约束 | 理由 |
|---|---|
先读取 | 此处的403意味着CMDB未启用或用户无CMDB访问权限——操作前需通过功能状态区分原因 |
从 | 安装端点通过与注册表的精确字符串匹配验证版本,注册表存储的版本与目录报告的完全一致(例如 |
| 仅安装最新版本 | 端点会拒绝任何非最新版本(错误信息: |
仅安装 | 本skill的范围仅限于CMDB Foundation基础包;可选附加包不在范围内 |
| 向用户确认目标组织和安装操作 | 安装内容是对实时组织的真实写入操作,难以撤销 |
| 如果已安装最新版本则跳过 | 避免重复安装;告知用户“已是最新版本” |
将 | 安装可能是异步的 |
| 切勿向用户暴露内部术语 | 用户可见的输出中不得包含记录ID、HTTP状态码(403/400/500)、API错误代码( |
Verification checklist
验证清单
- returned
bundleListView(CMDB is enabled and the user has access)?200 - Resolved for
latestVersionfrombase(not guessed)?bundles/details - Skipped if already at the latest version?
- Confirmed the target org + install with the user before writing?
- returned
bundleInstallation?success: true - Verified matches (or reported async in-progress)?
installedVersion
- 返回
bundleListView(CMDB已启用且用户有访问权限)?200 - 从解析了
bundles/details包的base(未猜测)?latestVersion - 如果已是最新版本则跳过操作?
- 写入前向用户确认了目标组织和安装操作?
- 返回
bundleInstallation?success: true - 验证匹配(或报告异步安装进行中)?
installedVersion
Output expectations
输出预期
text
CMDB Bundle Deploy — Complete (via service-itsm-agentic-setup-cmdb-bundle-deploy)
Target org: <org>
Bundle: CMDB Foundation (base)
Version: <version>
Status: Installation initiated — success
CMDB now has its base content installed. Combined with the enabled feature and assigned user
access, CMDB is ready end-to-end.Keep internal jargon out of user-facing output (no record IDs, HTTP status codes, error codes, or
endpoint names). If any step fails, stop and tell the user — in plain language — what didn't succeed
and what it means for them (e.g. "CMDB isn't turned on for this org yet, so the content can't be
installed" rather than echoing a 403 code), then point to the fix.
text
CMDB包部署——完成(通过service-itsm-agentic-setup-cmdb-bundle-deploy)
目标组织:<org>
包: CMDB Foundation(基础版)
版本: <version>
状态: 安装已启动——成功
CMDB现已安装基础内容。结合已启用的功能和已分配的用户访问权限,CMDB已完全就绪。用户可见的输出中不得包含内部术语(无记录ID、HTTP状态码、错误代码或端点名称)。如果任何步骤失败,停止操作并以通俗易懂的语言告知用户操作失败的内容及其影响(例如,“此组织尚未开启CMDB功能,因此无法安装内容”,而非回显403代码),然后指出解决方法。
Common failures (surface these in plain language)
常见故障(以通俗易懂的语言呈现)
| Symptom | Likely cause | What to tell the user |
|---|---|---|
| CMDB feature not enabled for the org | CMDB must be turned on for the org first; that's a separate setup step — point to the feature-enable skill |
| Feature is on; the running user lacks CMDB access (this read enforces user-level access too) | Grant the user CMDB access first (a separate setup step), then try again — the feature itself is already on |
| The user lacks the CMDB bundle-management role (Type Manager) | Grant the user the CMDB Type Manager role (a separate access step), then retry; the org itself is set up correctly |
| Install rejected — bundle/version doesn't exist | Wrong version string | Re-read the catalog and use the exact latest version it reports |
| Install reported success but the version hasn't changed | Installation is running in the background | It's in progress; check again shortly to confirm it finished |
| Downstream error on install | Temporary platform dependency issue | Try again; if it keeps failing, this needs Salesforce support |
| Connection/authentication error | The org connection isn't set up or has expired | Re-authenticate the org connection and confirm it points at the intended org, then retry |
| 症状 | 可能原因 | 告知用户的内容 |
|---|---|---|
目录读取返回 | 组织未启用CMDB功能 | 必须先为组织开启CMDB功能,这是一个单独的配置步骤——引导用户使用功能启用skill |
目录读取返回 | 功能已开启,但当前用户无CMDB访问权限(此读取操作也会验证用户级访问权限) | 先为用户授予CMDB访问权限(单独的配置步骤),然后重试——功能本身已开启 |
版本读取返回 | 用户缺少CMDB包管理角色(Type Manager) | 为用户授予CMDB Type Manager角色(单独的权限步骤),然后重试——组织本身已配置正确 |
| 安装被拒绝——包/版本不存在 | 版本字符串错误 | 重新读取目录并使用其报告的精确最新版本 |
| 安装报告成功但版本未更改 | 安装在后台运行 | 安装正在进行中;稍后重新检查确认是否完成 |
| 安装时出现下游错误 | 临时平台依赖问题 | 重试;如果持续失败,需要联系Salesforce支持 |
| 连接/认证错误 | 组织连接未配置或已过期 | 重新认证组织连接并确认其指向目标组织,然后重试 |
Cross-skill integration
跨skill集成
| When | Skill |
|---|---|
| The org CMDB feature is not enabled yet (org gate still closed) | |
| The running user lacks CMDB access, or lacks Type Manager for bundle management | |
| 场景 | Skill |
|---|---|
| 组织CMDB功能尚未启用(组织层面限制仍未解除) | |
| 当前用户缺少CMDB访问权限,或缺少包管理所需的Type Manager角色 | |
Reference file index
参考文件索引
| File | When to read |
|---|---|
| Exact |
| 文件 | 读取时机 |
|---|---|
| 包目录+安装调用的确切 |