Skip to content

Adding deploy extension results - #1647

Open
arushisinhaa wants to merge 2 commits into
salesforcecli:mainfrom
arushisinhaa:as/deploy-extension-results
Open

arushisinhaa wants to merge 2 commits into
salesforcecli:mainfrom
arushisinhaa:as/deploy-extension-results

Conversation

@arushisinhaa

@arushisinhaa arushisinhaa commented Sep 17, 2026 •

Copy link
Copy Markdown

What this PR does

Include Metadata deploy extension status on sf project deploy report (and the shared deploy report table).

Stack:

  1. jsforce#1832 — parse DeployResult.deployExtensionResults
  2. source-deploy-retrieve#1838 — TypeScript types
  3. plugin-deploy-retrieve (this PR) — print a row per extension

Design

A Metadata Deploy (API 67+, Core 262) can start a deploy extension after the zip save succeeds. Datakit automated deploy is one of those: the main MDAPI deploy is already Succeeded while the kit job is still InProgress.

Core already returns this on SOAP checkDeployStatus. Workbench shows it. The Salesforce CLI did not, because jsforce dropped the field and the plugin never rendered it.

How MDAPI looks (SOAP checkDeployStatus)

DeployResult includes an optional repeating child (API 67+):

Field SOAP type Meaning
type string DeployExtensionType API value, e.g. DataKitPostDeployFlow
status string New / InProgress / Succeeded / Failed
message string (optional) Progress JSON (e.g. deployExtensionId) or error text

Example SOAP fragment:

<result>
  <id>0AfXXXXXXXXXXXX</id>
  <done>true</done>
  <status>Succeeded</status>
  <success>true</success>
  <deployExtensionResults>
    <type>DataKitPostDeployFlow</type>
    <status>InProgress</status>
    <message>{"deployExtensionId":"1I7XXXXXXXXXXXX"}</message>
  </deployExtensionResults>
</result>

Component deploy status and extension status are independent. The zip can be Succeeded while the extension is still InProgress — that is the Workbench screenshot below.

How CLI looked before vs after

Before: sf project deploy start / sf project deploy report only showed the top-level deploy (Status: Succeeded, component counts, etc.). deployExtensionResults never appeared.

After: the deploy report table adds one row per extension:

Table key Value
deployextension.DataKitPostDeployFlow {"status":"InProgress"} while the kit job runs
deployextension.DataKitPostDeployFlow {"status":"Succeeded"} when the extension finishes
deployextension.DataKitPostDeployFlow {"status":"Failed","message":"<error>"} on failure

message is only added to that JSON when status is Failed. The formatter reads deployExtensionResults as a plain object (no SDR type import) so this plugin can ship even if SDR types lag.

Screenshots: Workbench checkDeployStatus (MDAPI) and CLI deploy report after the change.

Screenshot 2026-09-17 at 1 18 17 PM Screenshot 2026-09-17 at 1 18 41 PM

@salesforce-cla

Copy link
Copy Markdown

Thanks for the contribution! Unfortunately we can't verify the commit author(s): Arushi Sinha <a***@s***.com>. One possible solution is to add that email to your GitHub account. Alternatively you can change your commits to another email and force push the change. After getting your commits associated with your GitHub account, refresh the status of this Pull Request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant