Skip to content

Add DeployExtensionResult type and export - #1838

Open
arushisinhaa wants to merge 1 commit into
forcedotcom:mainfrom
arushisinhaa:feat/deploy-extension-result
Open

arushisinhaa wants to merge 1 commit into
forcedotcom:mainfrom
arushisinhaa:feat/deploy-extension-result

Conversation

@arushisinhaa

@arushisinhaa arushisinhaa commented Sep 17, 2026 •

Copy link
Copy Markdown

What does this PR do?

Export a DeployExtensionResult type and hang it on MetadataApiDeployStatus.deployExtensionResults, so SDR (and the CLI plugin) can read post-deploy extension status from Metadata checkDeployStatus.

Depends on jsforce parsing the field: jsforce#1832. Surfaced in CLI by plugin-deploy-retrieve#1647.

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. SDR had no type for it, so library consumers (including the deploy plugin) could not use the field even after jsforce started parsing 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>

jsforce may return one object or an array; the SDR field is typed as DeployExtensionResult | DeployExtensionResult[] to match that.

Component deploy status and extension status are independent. The zip can be Succeeded while the extension is still InProgress.

How CLI looked before vs after

Before: sf project deploy report never showed extensions.

After this stack: jsforce keeps the array; this PR types it; the plugin adds a report row deployextension.{type} whose value is {"status":"InProgress"} (and includes message when status is Failed).

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.

This branch has not been deployed

No deployments
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