From 79edb143b3fb0df0a3b88c77ebe6fbb7712fbff8 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 6 Jun 2022 13:37:39 -0600 Subject: [PATCH 1/4] feat: use StateAggregator --- package.json | 2 +- src/collections/componentSetBuilder.ts | 5 ++--- .../deployStrategies/auraDeploy.test.ts | 9 +------- .../deployStrategies/baseDeploy.test.ts | 9 +------- .../deployStrategies/containerDeploy.test.ts | 9 +------- .../client/deployStrategies/lwcDeploy.test.ts | 9 +------- test/client/retrieve.test.ts | 9 +------- test/client/toolingApi.test.ts | 9 +------- test/collections/componentSet.test.ts | 21 ++++--------------- test/mock/client/index.ts | 9 +------- yarn.lock | 8 +++---- 11 files changed, 18 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index 4e63ed6054..13429d050e 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "node": ">=14.0.0" }, "dependencies": { - "@salesforce/core": "^3.19.0", + "@salesforce/core": "^3.19.4", "@salesforce/kit": "^1.5.41", "@salesforce/ts-types": "^1.5.20", "archiver": "^5.3.0", diff --git a/src/collections/componentSetBuilder.ts b/src/collections/componentSetBuilder.ts index 1901a5e8c2..1e6255fcbb 100644 --- a/src/collections/componentSetBuilder.ts +++ b/src/collections/componentSetBuilder.ts @@ -8,7 +8,7 @@ /* eslint complexity: ["error", 22] */ import * as path from 'path'; -import { GlobalInfo, Logger, SfError } from '@salesforce/core'; +import { StateAggregator, Logger, SfError } from '@salesforce/core'; import * as fs from 'graceful-fs'; import { ComponentSet } from '../collections'; import { RegistryAccess } from '../registry'; @@ -122,8 +122,7 @@ export class ComponentSetBuilder { componentSet ??= new ComponentSet(); logger.debug(`Building ComponentSet from targetUsername: ${org.username}`); const fromConnection = await ComponentSet.fromConnection({ - // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment - usernameOrConnection: (await GlobalInfo.getInstance()).aliases.getUsername(org.username) || org.username, + usernameOrConnection: (await StateAggregator.getInstance()).aliases.getUsername(org.username) || org.username, // exclude components based on the results of componentFilter function // components with namespacePrefix where org.exclude includes manageableState (to exclude managed packages) // components with namespacePrefix where manageableState equals undefined (to exclude components e.g. InstalledPackage) diff --git a/test/client/deployStrategies/auraDeploy.test.ts b/test/client/deployStrategies/auraDeploy.test.ts index 656184ab4f..1b2aecb2d3 100644 --- a/test/client/deployStrategies/auraDeploy.test.ts +++ b/test/client/deployStrategies/auraDeploy.test.ts @@ -12,7 +12,6 @@ import { expect } from 'chai'; import * as fs from 'graceful-fs'; import { SaveError, SaveResult } from 'jsforce'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { Messages } from '@salesforce/core'; import { ComponentStatus, ToolingDeployStatus } from '../../../src/client'; import { AuraDeploy } from '../../../src/client/deployStrategies'; @@ -39,13 +38,7 @@ describe('Aura Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/baseDeploy.test.ts b/test/client/deployStrategies/baseDeploy.test.ts index 1a865bc7ee..09cb3c9777 100644 --- a/test/client/deployStrategies/baseDeploy.test.ts +++ b/test/client/deployStrategies/baseDeploy.test.ts @@ -10,7 +10,6 @@ import { MockTestOrgData, testSetup } from '@salesforce/core/lib/testSetup'; import { assert, expect } from 'chai'; import * as fs from 'graceful-fs'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { ContainerDeploy } from '../../../src/client/deployStrategies'; Messages.importMessagesDirectory(__dirname); @@ -30,13 +29,7 @@ describe('Base Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/containerDeploy.test.ts b/test/client/deployStrategies/containerDeploy.test.ts index e0be7fb3e0..a139340539 100644 --- a/test/client/deployStrategies/containerDeploy.test.ts +++ b/test/client/deployStrategies/containerDeploy.test.ts @@ -11,7 +11,6 @@ import { expect } from 'chai'; import * as fs from 'graceful-fs'; import { Record, SaveError, SaveResult } from 'jsforce'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { ContainerDeploy } from '../../../src/client/deployStrategies'; import { ComponentStatus, QueryResult, ToolingCreateResult, ToolingDeployStatus } from '../../../src/client/types'; import { SourceComponent } from '../../../src/resolve'; @@ -69,13 +68,7 @@ describe('Container Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/lwcDeploy.test.ts b/test/client/deployStrategies/lwcDeploy.test.ts index dacd84d31c..7b067c5919 100644 --- a/test/client/deployStrategies/lwcDeploy.test.ts +++ b/test/client/deployStrategies/lwcDeploy.test.ts @@ -12,7 +12,6 @@ import { expect } from 'chai'; import * as fs from 'graceful-fs'; import { SaveError, SaveResult } from 'jsforce'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { LwcDeploy } from '../../../src/client/deployStrategies'; import { LightningComponentResource, ToolingCreateResult } from '../../../src/client/types'; import { SourceComponent, VirtualTreeContainer } from '../../../src/resolve'; @@ -87,13 +86,7 @@ describe('LWC Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/retrieve.test.ts b/test/client/retrieve.test.ts index 458caa7c04..a898695318 100644 --- a/test/client/retrieve.test.ts +++ b/test/client/retrieve.test.ts @@ -13,7 +13,6 @@ import { MockTestOrgData, testSetup } from '@salesforce/core/lib/testSetup'; import { expect } from 'chai'; import * as fs from 'graceful-fs'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { ToolingApi } from '../../src/client'; import { MetadataResolver, SourceComponent } from '../../src/resolve'; import { QueryResult, RequestStatus, SourceRetrieveResult } from '../../src/client/types'; @@ -65,13 +64,7 @@ describe('Tooling Retrieve', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/toolingApi.test.ts b/test/client/toolingApi.test.ts index a8f1310f27..d9811f53fd 100644 --- a/test/client/toolingApi.test.ts +++ b/test/client/toolingApi.test.ts @@ -9,7 +9,6 @@ import { AuthInfo, Connection, Messages } from '@salesforce/core'; import { MockTestOrgData, testSetup } from '@salesforce/core/lib/testSetup'; import { expect } from 'chai'; import { createSandbox, SinonSandbox } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { MetadataResolver, SourceComponent } from '../../src/resolve'; import { ComponentStatus, ToolingApi, ToolingDeployStatus } from '../../src/client'; import { ContainerDeploy } from '../../src/client/deployStrategies'; @@ -32,13 +31,7 @@ describe('Tooling API tests', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/collections/componentSet.test.ts b/test/collections/componentSet.test.ts index ccdac82fc4..a7738ef82c 100644 --- a/test/collections/componentSet.test.ts +++ b/test/collections/componentSet.test.ts @@ -9,7 +9,6 @@ import { join } from 'path'; import { MockTestOrgData, testSetup } from '@salesforce/core/lib/testSetup'; import { expect } from 'chai'; import { createSandbox, SinonStub } from 'sinon'; -import { AnyJson } from '@salesforce/ts-types'; import { AuthInfo, Connection, Messages } from '@salesforce/core'; import { ComponentSet, @@ -279,16 +278,10 @@ describe('ComponentSet', () => { apiVersion: '50.0', }); env.stub(RegistryAccess.prototype, 'getTypeByName').returns(registry.types.apexclass); - const testData = new MockTestOrgData(); const username = 'test@foobar.com'; + const testData = new MockTestOrgData($$.uniqid(), { username }); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); const set = await ComponentSet.fromConnection({ usernameOrConnection: username, apiVersion: '50.0', @@ -301,15 +294,9 @@ describe('ComponentSet', () => { }); it('should initialize using an username', async () => { - const testData = new MockTestOrgData(); const username = 'test@foobar.com'; - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [username]: testData as unknown as AnyJson, - }), - }, - }; + const testData = new MockTestOrgData($$.uniqid(), { username }); + $$.stubAuths(testData); const connection = await Connection.create({ authInfo: await AuthInfo.create({ username: 'test@foobar.com', diff --git a/test/mock/client/index.ts b/test/mock/client/index.ts index 23d1b1f663..5b9cbede80 100644 --- a/test/mock/client/index.ts +++ b/test/mock/client/index.ts @@ -9,7 +9,6 @@ import { promisify } from 'util'; import { AuthInfo, Connection } from '@salesforce/core'; import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; import { create as createArchive } from 'archiver'; -import { AnyJson } from '@salesforce/ts-types'; export async function createMockZip(entries: string[]): Promise { const archive = createArchive('zip'); @@ -29,13 +28,7 @@ export async function createMockZip(entries: string[]): Promise { export async function mockConnection($$: TestContext): Promise { const testData = new MockTestOrgData(); - $$.configStubs.GlobalInfo = { - contents: { - orgs: Object.assign($$.configStubs.GlobalInfo?.contents?.orgs || {}, { - [testData.username]: testData as unknown as AnyJson, - }), - }, - }; + $$.stubAuths(testData); return Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/yarn.lock b/yarn.lock index cfe9180ab3..28b91e278e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -605,10 +605,10 @@ mv "~2" safe-json-stringify "~1" -"@salesforce/core@^3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-3.19.0.tgz#e238b07190623dc4e1ca1888c1185f5bfa2d383e" - integrity sha512-64bz7cvfEkJz1JCMlf3W1CaWShoaINzfkrT6BQxtb5AdjZm5rs8Lmg3q6hie4hhWo3VVSvPOdnWEPpMJCdJ4/w== +"@salesforce/core@^3.19.4": + version "3.19.4" + resolved "https://registry.npmjs.org/@salesforce/core/-/core-3.19.4.tgz#c5e746bd5788c5c34ad4855add3b91aa8283e7b4" + integrity sha512-UPSoXB313mErUScZh/suCyO8xNHldHjZ4OItpsqM4vgQVxcH2aR6KZl0woHB2Yveg+apX+An48QXEqO4VMzYTg== dependencies: "@salesforce/bunyan" "^2.0.0" "@salesforce/kit" "^1.5.41" From 581dd532a21f6ee9453b26f78e404f64b83ba1a6 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 6 Jun 2022 13:50:34 -0600 Subject: [PATCH 2/4] fix: use await --- test/client/deployStrategies/auraDeploy.test.ts | 2 +- test/client/deployStrategies/baseDeploy.test.ts | 2 +- test/client/deployStrategies/containerDeploy.test.ts | 2 +- test/client/deployStrategies/lwcDeploy.test.ts | 2 +- test/client/retrieve.test.ts | 2 +- test/client/toolingApi.test.ts | 2 +- test/collections/componentSet.test.ts | 4 ++-- test/mock/client/index.ts | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/client/deployStrategies/auraDeploy.test.ts b/test/client/deployStrategies/auraDeploy.test.ts index 1b2aecb2d3..3cc1d34790 100644 --- a/test/client/deployStrategies/auraDeploy.test.ts +++ b/test/client/deployStrategies/auraDeploy.test.ts @@ -38,7 +38,7 @@ describe('Aura Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/baseDeploy.test.ts b/test/client/deployStrategies/baseDeploy.test.ts index 09cb3c9777..d5c644c591 100644 --- a/test/client/deployStrategies/baseDeploy.test.ts +++ b/test/client/deployStrategies/baseDeploy.test.ts @@ -29,7 +29,7 @@ describe('Base Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/containerDeploy.test.ts b/test/client/deployStrategies/containerDeploy.test.ts index a139340539..9fd6c14a04 100644 --- a/test/client/deployStrategies/containerDeploy.test.ts +++ b/test/client/deployStrategies/containerDeploy.test.ts @@ -68,7 +68,7 @@ describe('Container Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/deployStrategies/lwcDeploy.test.ts b/test/client/deployStrategies/lwcDeploy.test.ts index 7b067c5919..e101e3cde6 100644 --- a/test/client/deployStrategies/lwcDeploy.test.ts +++ b/test/client/deployStrategies/lwcDeploy.test.ts @@ -86,7 +86,7 @@ describe('LWC Deploy Strategy', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/retrieve.test.ts b/test/client/retrieve.test.ts index a898695318..01b9268765 100644 --- a/test/client/retrieve.test.ts +++ b/test/client/retrieve.test.ts @@ -64,7 +64,7 @@ describe('Tooling Retrieve', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/client/toolingApi.test.ts b/test/client/toolingApi.test.ts index d9811f53fd..3b14dee2a8 100644 --- a/test/client/toolingApi.test.ts +++ b/test/client/toolingApi.test.ts @@ -31,7 +31,7 @@ describe('Tooling API tests', () => { beforeEach(async () => { sandboxStub = createSandbox(); - $$.stubAuths(testData); + await $$.stubAuths(testData); mockConnection = await Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/collections/componentSet.test.ts b/test/collections/componentSet.test.ts index a7738ef82c..9934a2a18d 100644 --- a/test/collections/componentSet.test.ts +++ b/test/collections/componentSet.test.ts @@ -281,7 +281,7 @@ describe('ComponentSet', () => { const username = 'test@foobar.com'; const testData = new MockTestOrgData($$.uniqid(), { username }); - $$.stubAuths(testData); + await $$.stubAuths(testData); const set = await ComponentSet.fromConnection({ usernameOrConnection: username, apiVersion: '50.0', @@ -296,7 +296,7 @@ describe('ComponentSet', () => { it('should initialize using an username', async () => { const username = 'test@foobar.com'; const testData = new MockTestOrgData($$.uniqid(), { username }); - $$.stubAuths(testData); + await $$.stubAuths(testData); const connection = await Connection.create({ authInfo: await AuthInfo.create({ username: 'test@foobar.com', diff --git a/test/mock/client/index.ts b/test/mock/client/index.ts index 5b9cbede80..40c3d9ca72 100644 --- a/test/mock/client/index.ts +++ b/test/mock/client/index.ts @@ -28,7 +28,7 @@ export async function createMockZip(entries: string[]): Promise { export async function mockConnection($$: TestContext): Promise { const testData = new MockTestOrgData(); - $$.stubAuths(testData); + await $$.stubAuths(testData); return Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, From 9b5eac5c01cf5f4a87b065d6aebf05eb7b1b245f Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Mon, 6 Jun 2022 14:03:09 -0600 Subject: [PATCH 3/4] chore: fix tests --- test/client/metadataApiRetrieve.test.ts | 9 ++++----- test/client/metadataTransfer.test.ts | 4 +--- test/collections/componentSet.test.ts | 12 ++++++------ test/mock/client/index.ts | 5 ++--- test/mock/client/transferOperations.ts | 6 +++--- test/resolve/connectionResolver.test.ts | 2 +- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/test/client/metadataApiRetrieve.test.ts b/test/client/metadataApiRetrieve.test.ts index f5679afc8a..3f8e1fc88c 100644 --- a/test/client/metadataApiRetrieve.test.ts +++ b/test/client/metadataApiRetrieve.test.ts @@ -12,7 +12,6 @@ import * as unzipper from 'unzipper'; import { createSandbox, match, SinonStub } from 'sinon'; import { getString } from '@salesforce/ts-types'; import * as fs from 'graceful-fs'; -import { testSetup } from '@salesforce/core/lib/testSetup'; import { ComponentSet, ComponentStatus, @@ -98,7 +97,7 @@ describe('MetadataApiRetrieve', () => { expect(retrieveStub.calledOnce).to.be.true; expect(retrieveStub.firstCall.args[0]).to.deep.equal({ - apiVersion: (await mockConnection(testSetup())).getApiVersion(), + apiVersion: (await mockConnection()).getApiVersion(), unpackaged: (await toRetrieve.getObject()).Package, }); }); @@ -116,7 +115,7 @@ describe('MetadataApiRetrieve', () => { expect(retrieveStub.calledOnce).to.be.true; expect(retrieveStub.firstCall.args[0]).to.deep.equal({ - apiVersion: (await mockConnection(testSetup())).getApiVersion(), + apiVersion: (await mockConnection()).getApiVersion(), packageNames: options.packageOptions, unpackaged: (await toRetrieve.getObject()).Package, }); @@ -135,7 +134,7 @@ describe('MetadataApiRetrieve', () => { expect(retrieveStub.calledOnce).to.be.true; expect(retrieveStub.firstCall.args[0]).to.deep.equal({ - apiVersion: (await mockConnection(testSetup())).getApiVersion(), + apiVersion: (await mockConnection()).getApiVersion(), packageNames: [options.packageOptions[0].name], unpackaged: (await toRetrieve.getObject()).Package, }); @@ -154,7 +153,7 @@ describe('MetadataApiRetrieve', () => { expect(retrieveStub.calledOnce).to.be.true; expect(retrieveStub.firstCall.args[0]).to.deep.equal({ - apiVersion: (await mockConnection(testSetup())).getApiVersion(), + apiVersion: (await mockConnection()).getApiVersion(), packageNames: [options.packageOptions[0].name], unpackaged: (await toRetrieve.getObject()).Package, }); diff --git a/test/client/metadataTransfer.test.ts b/test/client/metadataTransfer.test.ts index 5b74c2b11d..16254adb51 100644 --- a/test/client/metadataTransfer.test.ts +++ b/test/client/metadataTransfer.test.ts @@ -6,7 +6,6 @@ */ import { fail } from 'assert'; import { createSandbox, SinonStub } from 'sinon'; -import { testSetup } from '@salesforce/core/lib/testSetup'; import { AuthInfo, Connection, PollingClient, Messages } from '@salesforce/core'; import { expect } from 'chai'; import { Duration, sleep } from '@salesforce/kit'; @@ -18,7 +17,6 @@ import { mockConnection } from '../mock/client'; Messages.importMessagesDirectory(__dirname); const messages = Messages.load('@salesforce/source-deploy-retrieve', 'sdr', ['md_request_fail']); -const $$ = testSetup(); const env = createSandbox(); class TestTransfer extends MetadataTransfer { @@ -52,7 +50,7 @@ describe('MetadataTransfer', () => { let operation: TestTransfer; beforeEach(async () => { - connection = await mockConnection($$); + connection = await mockConnection(); operation = new TestTransfer({ components: new ComponentSet(), usernameOrConnection: connection, diff --git a/test/collections/componentSet.test.ts b/test/collections/componentSet.test.ts index 9934a2a18d..83645df110 100644 --- a/test/collections/componentSet.test.ts +++ b/test/collections/componentSet.test.ts @@ -246,7 +246,7 @@ describe('ComponentSet', () => { describe('fromConnection', () => { it('should initialize using a connection', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const expected: MetadataComponent[] = [ { fullName: 'Test', @@ -629,7 +629,7 @@ describe('ComponentSet', () => { describe('deploy', () => { it('should properly construct a deploy operation', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const set = ComponentSet.fromSource({ fsPaths: ['.'], registry: registryAccess, @@ -651,7 +651,7 @@ describe('ComponentSet', () => { }); it('should properly construct a deploy operation with overridden apiVersion', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const apiVersion = '50.0'; const set = ComponentSet.fromSource({ fsPaths: ['.'], @@ -695,7 +695,7 @@ describe('ComponentSet', () => { describe('retrieve', () => { it('should properly construct a retrieve operation', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const set = ComponentSet.fromSource({ fsPaths: ['.'], registry: registryAccess, @@ -724,7 +724,7 @@ describe('ComponentSet', () => { }); it('should properly construct a retrieve operation with overridden apiVersion', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const apiVersion = '50.0'; const set = ComponentSet.fromSource({ fsPaths: ['.'], @@ -756,7 +756,7 @@ describe('ComponentSet', () => { }); it('should properly construct a retrieve operation with packageName', async () => { - const connection = await mockConnection($$); + const connection = await mockConnection(); const set = new ComponentSet([]); const operationArgs = { components: set, diff --git a/test/mock/client/index.ts b/test/mock/client/index.ts index 40c3d9ca72..f2f3af81a2 100644 --- a/test/mock/client/index.ts +++ b/test/mock/client/index.ts @@ -7,7 +7,7 @@ import { pipeline, Writable } from 'stream'; import { promisify } from 'util'; import { AuthInfo, Connection } from '@salesforce/core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData } from '@salesforce/core/lib/testSetup'; import { create as createArchive } from 'archiver'; export async function createMockZip(entries: string[]): Promise { @@ -26,9 +26,8 @@ export async function createMockZip(entries: string[]): Promise { return Buffer.concat(buffers); } -export async function mockConnection($$: TestContext): Promise { +export async function mockConnection(): Promise { const testData = new MockTestOrgData(); - await $$.stubAuths(testData); return Connection.create({ authInfo: await AuthInfo.create({ username: testData.username, diff --git a/test/mock/client/transferOperations.ts b/test/mock/client/transferOperations.ts index 2cd5b6553c..175faff71a 100644 --- a/test/mock/client/transferOperations.ts +++ b/test/mock/client/transferOperations.ts @@ -6,7 +6,7 @@ */ import { join, sep } from 'path'; -import { testSetup, TestContext } from '@salesforce/core/lib/testSetup'; +import { TestContext } from '@salesforce/core/lib/testSetup'; import { PollingClient } from '@salesforce/core'; import { match, SinonSandbox, SinonSpy, SinonStub } from 'sinon'; import { AsyncResult } from 'jsforce/lib/api/metadata'; @@ -65,7 +65,7 @@ export async function stubMetadataDeploy( ): Promise { const sandbox = context.SANDBOX; const zipBuffer = Buffer.from('1234'); - const connection = await mockConnection(context); + const connection = await mockConnection(); const deployStub = sandbox.stub(connection.metadata, 'deploy'); const deployRestStub = sandbox.stub(connection.metadata, 'deployRest'); @@ -169,7 +169,7 @@ export async function stubMetadataRetrieve( options: RetrieveStubOptions ): Promise { const { toRetrieve: retrievedComponents, packageOptions: packages } = options; - const connection = await mockConnection(testSetup()); + const connection = await mockConnection(); const retrieveStub = sandbox.stub(connection.metadata, 'retrieve').resolves(MOCK_ASYNC_RESULT); diff --git a/test/resolve/connectionResolver.test.ts b/test/resolve/connectionResolver.test.ts index bd2b2ab1ca..d7bd259ed8 100644 --- a/test/resolve/connectionResolver.test.ts +++ b/test/resolve/connectionResolver.test.ts @@ -35,7 +35,7 @@ describe('ConnectionResolver', () => { $$.setConfigStubContents('AuthInfoConfig', { contents: await testData.getConfig(), }); - connection = await mockConnection($$); + connection = await mockConnection(); }); afterEach(() => { From a62862cd5d97ddfbed3320f1da4f48b2d50f791f Mon Sep 17 00:00:00 2001 From: Eric Willhoit Date: Wed, 22 Jun 2022 15:40:47 -0500 Subject: [PATCH 4/4] chore: auto-update metadata coverage in METADATA_SUPPORT.md --- METADATA_SUPPORT.md | 1038 ++++++++++++++++++++++--------------------- 1 file changed, 521 insertions(+), 517 deletions(-) diff --git a/METADATA_SUPPORT.md b/METADATA_SUPPORT.md index 56b71b18e1..2808ec7b29 100644 --- a/METADATA_SUPPORT.md +++ b/METADATA_SUPPORT.md @@ -8,529 +8,533 @@ Currently, there are 459/491 supported metadata types. For status on any existing gaps, please search or file an issue in the [Salesforce CLI issues only repo](https://github.com/forcedotcom/cli/issues). To contribute a new metadata type, please see the [Contributing Metadata Types to the Registry](./contributing/metadata.md) -| Metadata Type | Support | Notes | -| :------------------------------------ | :------ | :--------------------------------------------------------------- | -| AIApplication | ✅ | | -| AIApplicationConfig | ✅ | | -| AIReplyRecommendationsSettings | ✅ | | -| AccountForecastSettings | ✅ | | -| AccountInsightsSettings | ✅ | | -| AccountIntelligenceSettings | ✅ | | -| AccountRelationshipShareRule | ✅ | | -| AccountSettings | ✅ | | -| AcctMgrTargetSettings | ✅ | | -| ActionLinkGroupTemplate | ✅ | | -| ActionPlanTemplate | ✅ | | -| ActionsSettings | ✅ | | -| ActivationPlatform | ✅ | | -| ActivitiesSettings | ✅ | | -| AddressSettings | ✅ | | -| AdvAccountForecastSet | ✅ | | -| AdvAcctForecastDimSource | ✅ | | -| AdvAcctForecastPeriodGroup | ✅ | | -| AnalyticSnapshot | ✅ | | -| AnalyticsDataServicesSettings | ✅ | | -| AnalyticsSettings | ✅ | | -| AnimationRule | ✅ | | -| ApexClass | ✅ | | -| ApexComponent | ✅ | | -| ApexEmailNotifications | ✅ | | -| ApexPage | ✅ | | -| ApexSettings | ✅ | | -| ApexTestSuite | ✅ | | -| ApexTrigger | ✅ | | -| AppAnalyticsSettings | ✅ | | -| AppExperienceSettings | ✅ | | -| AppExplorationDataConsent | ❌ | Not supported, but support could be added | -| AppMenu | ✅ | | -| ApplicationRecordTypeConfig | ✅ | | -| ApplicationSubtypeDefinition | ✅ | | -| AppointmentAssignmentPolicy | ✅ | | -| AppointmentSchedulingPolicy | ✅ | | -| ApprovalProcess | ✅ | | -| ArchiveSettings | ✅ | | -| AssessmentQuestion | ✅ | | -| AssessmentQuestionSet | ✅ | | -| AssignmentRules | ✅ | | -| AssistantContextItem | ✅ | | -| AssistantDefinition | ✅ | | -| AssistantSkillQuickAction | ✅ | | -| AssistantSkillSobjectAction | ✅ | | -| AssistantVersion | ✅ | | -| AssociationEngineSettings | ✅ | | -| Audience | ✅ | | -| AuraDefinitionBundle | ✅ | | -| AuthProvider | ✅ | | -| AutoResponseRules | ✅ | | -| AutomatedContactsSettings | ✅ | | -| BatchCalcJobDefinition | ✅ | | -| BatchProcessJobDefinition | ✅ | | -| BenefitAction | ✅ | | -| BlacklistedConsumer | ✅ | | -| BldgEnrgyIntensityCnfg | ✅ | | -| BlockchainSettings | ✅ | | -| Bot | ✅ | | -| BotSettings | ✅ | | -| BotTemplate | ✅ | | -| BotVersion | ✅ | | -| BranchManagementSettings | ✅ | | -| BrandingSet | ✅ | | -| BriefcaseDefinition | ✅ | | -| BusinessHoursSettings | ✅ | | -| BusinessProcess | ✅ | | -| BusinessProcessGroup | ✅ | | -| BusinessProcessTypeDefinition | ✅ | | -| CMSConnectSource | ✅ | | -| CallCenter | ✅ | | -| CallCenterRoutingMap | ✅ | | -| CallCoachingMediaProvider | ⚠️ | Supports deploy/retrieve but not source tracking | -| CallCtrAgentFavTrfrDest | ❌ | Not supported, but support could be added | -| CampaignInfluenceModel | ✅ | | -| CampaignSettings | ✅ | | -| CanvasMetadata | ✅ | | -| CareBenefitVerifySettings | ✅ | | -| CareLimitType | ✅ | | -| CareProviderSearchConfig | ✅ | | -| CareRequestConfiguration | ✅ | | -| CareSystemFieldMapping | ✅ | | -| CaseSettings | ✅ | | -| CaseSubjectParticle | ✅ | | -| Certificate | ✅ | | -| ChannelLayout | ✅ | | -| ChannelObjectLinkingRule | ✅ | | -| ChatterAnswersSettings | ✅ | | -| ChatterEmailsMDSettings | ✅ | | -| ChatterExtension | ✅ | | -| ChatterSettings | ✅ | | -| CleanDataService | ✅ | | -| CommandAction | ✅ | | -| CommerceSettings | ✅ | | -| CommunitiesSettings | ✅ | | -| Community | ✅ | | -| CommunityTemplateDefinition | ✅ | | -| CommunityThemeDefinition | ✅ | | -| CompactLayout | ✅ | | -| CompanySettings | ✅ | | -| ConnectedApp | ✅ | | -| ConnectedAppSettings | ✅ | | -| ConnectedSystem | ✅ | | -| ContentAsset | ✅ | | -| ContentSettings | ✅ | | -| ContractSettings | ✅ | | -| ContractType | ❌ | Not supported, but support could be added | -| ConversationVendorInfo | ✅ | | -| ConversationalIntelligenceSettings | ✅ | | -| CorsWhitelistOrigin | ✅ | | -| CspTrustedSite | ✅ | | -| CurrencySettings | ✅ | | -| CustomAddressFieldSettings | ✅ | | -| CustomApplication | ✅ | | -| CustomApplicationComponent | ✅ | | -| CustomFeedFilter | ✅ | | -| CustomField | ✅ | | -| CustomHelpMenuSection | ✅ | | -| CustomIndex | ✅ | | -| CustomLabels | ✅ | | -| CustomMetadata | ✅ | | -| CustomNotificationType | ✅ | | -| CustomObject | ✅ | | -| CustomObjectTranslation | ✅ | | -| CustomPageWebLink | ✅ | | -| CustomPermission | ✅ | | -| CustomSite | ✅ | | -| CustomTab | ✅ | | -| CustomValue | ❌ | Not supported, but support could be added | -| CustomerDataPlatformSettings | ✅ | | -| Dashboard | ✅ | | -| DashboardFolder | ✅ | | -| DataCategoryGroup | ✅ | | -| DataConnectorIngestApi | ✅ | | -| DataConnectorS3 | ✅ | | -| DataDotComSettings | ✅ | | -| DataImportManagementSettings | ✅ | | -| DataMapping | ✅ | | -| DataMappingFieldDefinition | ✅ | | -| DataMappingObjectDefinition | ✅ | | -| DataMappingSchema | ✅ | | -| DataSource | ✅ | | -| DataSourceObject | ✅ | | -| DataSourceTenant | ✅ | | -| DataStreamDefinition | ✅ | | -| DecisionMatrixDefinition | ✅ | | -| DecisionMatrixDefinitionVersion | ✅ | | -| DecisionTable | ✅ | | -| DecisionTableDatasetLink | ✅ | | -| DelegateGroup | ✅ | | -| DeploymentSettings | ✅ | | -| DevHubSettings | ✅ | | -| DiscoveryAIModel | ✅ | | -| DiscoveryGoal | ✅ | | -| DiscoverySettings | ✅ | | -| DiscoveryStory | ❌ | Not supported, but support could be added | -| Document | ✅ | | -| DocumentChecklistSettings | ✅ | | -| DocumentFolder | ✅ | | -| DocumentGenerationSetting | ✅ | | -| DocumentType | ✅ | | -| DuplicateRule | ✅ | | -| EACSettings | ✅ | | -| ESignatureConfig | ✅ | | -| ESignatureEnvelopeConfig | ✅ | | -| EclairGeoData | ✅ | | -| EinsteinAgentSettings | ✅ | | -| EinsteinAssistantSettings | ✅ | | -| EinsteinDealInsightsSettings | ✅ | | -| EinsteinDocumentCaptureSettings | ✅ | | -| EmailAdministrationSettings | ✅ | | -| EmailFolder | ✅ | | -| EmailIntegrationSettings | ✅ | | -| EmailServicesFunction | ✅ | | -| EmailTemplate | ✅ | | -| EmailTemplateFolder | ✅ | | -| EmailTemplateSettings | ✅ | | -| EmbeddedServiceBranding | ✅ | | -| EmbeddedServiceConfig | ✅ | | -| EmbeddedServiceFlowConfig | ✅ | | -| EmbeddedServiceLiveAgent | ✅ | | -| EmbeddedServiceMenuSettings | ✅ | | -| EmployeeDataSyncProfile | ❌ | Not supported, but support could be added | -| EmployeeFieldAccessSettings | ✅ | | -| EmployeeUserSettings | ✅ | | -| EnhancedNotesSettings | ✅ | | -| EntitlementProcess | ✅ | | -| EntitlementSettings | ✅ | | -| EntitlementTemplate | ✅ | | -| EntityImplements | ✅ | | -| EscalationRules | ✅ | | -| EssentialsSettings | ✅ | | -| EventSettings | ✅ | | -| ExperienceBundle | ✅ | | -| ExperienceBundleSettings | ✅ | | -| ExplainabilityActionDefinition | ✅ | | -| ExplainabilityActionVersion | ✅ | | -| ExpressionSetDefinition | ✅ | | -| ExpressionSetDefinitionVersion | ✅ | | -| ExternalAIModel | ❌ | Not supported, but support could be added | -| ExternalCredential | ❌ | Not supported, but support could be added | -| ExternalDataConnector | ✅ | | -| ExternalDataSource | ✅ | | -| ExternalDataSrcDescriptor | ❌ | Not supported, but support could be added | -| ExternalDataTranField | ❌ | Not supported, but support could be added | -| ExternalDataTranObject | ❌ | Not supported, but support could be added | -| ExternalServiceRegistration | ✅ | | -| ExternalServicesSettings | ✅ | | -| FeatureParameterBoolean | ✅ | | -| FeatureParameterDate | ✅ | | -| FeatureParameterInteger | ✅ | | -| FederationDataMappingUsage | ✅ | | -| FieldRestrictionRule | ✅ | | -| FieldServiceMobileExtension | ✅ | | -| FieldServiceSettings | ✅ | | -| FieldSet | ✅ | | -| FieldSrcTrgtRelationship | ✅ | | -| FileUploadAndDownloadSecuritySettings | ✅ | | -| FilesConnectSettings | ✅ | | -| FlexiPage | ✅ | | -| Flow | ✅ | | -| FlowCategory | ✅ | | -| FlowDefinition | ⚠️ | Supports deploy/retrieve but not source tracking | -| FlowSettings | ✅ | | -| FlowTest | ✅ | | -| ForecastingFilter | ❌ | Not supported, but support could be added | -| ForecastingFilterCondition | ❌ | Not supported, but support could be added | -| ForecastingObjectListSettings | ✅ | | -| ForecastingSettings | ✅ | | -| ForecastingSourceDefinition | ✅ | | -| ForecastingType | ✅ | | -| ForecastingTypeSource | ✅ | | -| FormulaSettings | ✅ | | -| FunctionReference | ⚠️ | Supports deploy/retrieve but not source tracking | -| GatewayProviderPaymentMethodType | ✅ | | -| GlobalValueSet | ✅ | | -| GlobalValueSetTranslation | ✅ | | -| GoogleAppsSettings | ✅ | | -| Group | ✅ | | -| HighVelocitySalesSettings | ✅ | | -| HomePageComponent | ✅ | | -| HomePageLayout | ✅ | | -| IPAddressRange | ✅ | | -| Icon | ✅ | | -| IdeasSettings | ✅ | | -| IdentityVerificationProcDef | ❌ | Not supported, but support could be added | -| IframeWhiteListUrlSettings | ✅ | | -| InboundCertificate | ✅ | | -| InboundNetworkConnection | ✅ | | -| IncidentMgmtSettings | ✅ | | -| Index | ⚠️ | Supports deploy/retrieve but not source tracking | -| IndustriesAutomotiveSettings | ✅ | | -| IndustriesLoyaltySettings | ✅ | | -| IndustriesManufacturingSettings | ✅ | | -| IndustriesSettings | ✅ | | -| InstalledPackage | ⚠️ | Supports deploy/retrieve but not source tracking | -| InterestTaggingSettings | ✅ | | -| InternalDataConnector | ✅ | | -| InvLatePymntRiskCalcSettings | ✅ | | -| InventorySettings | ✅ | | -| InvocableActionSettings | ✅ | | -| IoTSettings | ✅ | | -| KeywordList | ✅ | | -| KnowledgeSettings | ✅ | | -| LanguageSettings | ✅ | | -| Layout | ✅ | | -| LeadConfigSettings | ✅ | | -| LeadConvertSettings | ✅ | | -| Letterhead | ✅ | | -| LightningBolt | ✅ | | -| LightningComponentBundle | ✅ | | -| LightningExperienceSettings | ✅ | | -| LightningExperienceTheme | ✅ | | -| LightningMessageChannel | ✅ | | -| LightningOnboardingConfig | ✅ | | -| ListView | ✅ | | -| LiveAgentSettings | ✅ | | -| LiveChatAgentConfig | ✅ | | -| LiveChatButton | ✅ | | -| LiveChatDeployment | ✅ | | -| LiveChatSensitiveDataRule | ✅ | | -| LiveMessageSettings | ✅ | | -| LoyaltyProgramSetup | ⚠️ | Supports deploy/retrieve but not source tracking | -| MLDataDefinition | ✅ | | -| MLPredictionDefinition | ✅ | | -| MLRecommendationDefinition | ✅ | | -| MacroSettings | ✅ | | -| MailMergeSettings | ✅ | | -| ManagedContentType | ⚠️ | Supports deploy/retrieve but not source tracking | -| ManagedTopics | ✅ | | -| MapsAndLocationSettings | ✅ | | -| MarketSegmentDefinition | ❌ | Not supported, but support could be added | -| MarketingAppExtActivity | ❌ | Not supported, but support could be added | -| MarketingAppExtension | ❌ | Not supported, but support could be added | -| MatchingRules | ✅ | | -| MediaAdSalesSettings | ✅ | | -| MeetingsSettings | ✅ | | -| MessagingChannel | ❌ | Not supported, but support could be added (but not for tracking) | -| MfgProgramTemplate | ❌ | Not supported, but support could be added | -| MilestoneType | ✅ | | -| MktCalcInsightObjectDef | ✅ | | -| MktDataTranObject | ✅ | | -| MlDomain | ✅ | | -| MobSecurityCertPinConfig | ✅ | | -| MobileApplicationDetail | ✅ | | -| MobileSecurityAssignment | ✅ | | -| MobileSecurityPolicy | ✅ | | -| MobileSecurityPolicySet | ✅ | | -| MobileSettings | ✅ | | -| ModerationRule | ✅ | | -| MutingPermissionSet | ✅ | | -| MyDomainDiscoverableLogin | ✅ | | -| MyDomainSettings | ✅ | | -| NameSettings | ✅ | | -| NamedCredential | ✅ | | -| NavigationMenu | ✅ | | -| Network | ✅ | | -| NetworkBranding | ✅ | | -| NotificationTypeConfig | ✅ | | -| NotificationsSettings | ✅ | | -| OauthCustomScope | ✅ | | -| ObjectHierarchyRelationship | ✅ | | -| ObjectLinkingSettings | ✅ | | -| ObjectSourceTargetMap | ✅ | | -| OcrSampleDocument | ✅ | | -| OcrTemplate | ✅ | | -| OmniChannelSettings | ✅ | | -| OmniDataTransform | ✅ | | -| OmniIntegrationProcedure | ✅ | | -| OmniInteractionAccessConfig | ✅ | | -| OmniInteractionConfig | ✅ | | -| OmniScript | ✅ | | -| OmniUiCard | ✅ | | -| OnlineSalesSettings | ✅ | | -| OpportunityInsightsSettings | ✅ | | -| OpportunityScoreSettings | ✅ | | -| OpportunitySettings | ✅ | | -| OrderManagementSettings | ✅ | | -| OrderSettings | ✅ | | -| OrgSettings | ✅ | | -| OutboundNetworkConnection | ✅ | | -| PardotEinsteinSettings | ✅ | | -| PardotSettings | ✅ | | -| ParticipantRole | ✅ | | -| PartyDataModelSettings | ✅ | | -| PathAssistant | ✅ | | -| PathAssistantSettings | ✅ | | -| PaymentGatewayProvider | ✅ | | -| PaymentsManagementEnabledSettings | ✅ | | -| PermissionSet | ✅ | | -| PermissionSetGroup | ✅ | | -| PermissionSetLicenseDefinition | ✅ | | -| PicklistSettings | ✅ | | -| PicklistValue | ❌ | Not supported, but support could be added | -| PlatformCachePartition | ✅ | | -| PlatformEventChannel | ✅ | | -| PlatformEventChannelMember | ✅ | | -| PlatformEventSubscriberConfig | ✅ | | -| PlatformSlackSettings | ✅ | | -| PortalsSettings | ✅ | | -| PostTemplate | ✅ | | -| PredictionBuilderSettings | ✅ | | -| PresenceDeclineReason | ✅ | | -| PresenceUserConfig | ✅ | | -| PrivacySettings | ✅ | | -| ProductAttributeSet | ✅ | | -| ProductSettings | ✅ | | -| Profile | ✅ | | -| ProfilePasswordPolicy | ✅ | | -| ProfileSessionSetting | ✅ | | -| Prompt | ✅ | | -| Queue | ✅ | | -| QueueRoutingConfig | ✅ | | -| QuickAction | ✅ | | -| QuickTextSettings | ✅ | | -| QuoteSettings | ✅ | | -| RealTimeEventSettings | ✅ | | -| RecommendationBuilderSettings | ✅ | | -| RecommendationStrategy | ✅ | | -| RecordActionDeployment | ✅ | | -| RecordAlertCategory | ✅ | | -| RecordAlertDataSource | ✅ | | -| RecordPageSettings | ✅ | | -| RecordType | ✅ | | -| RedirectWhitelistUrl | ✅ | | -| RegisteredExternalService | ❌ | Not supported, but support could be added | -| RelatedRecordAssocCriteria | ❌ | Not supported, but support could be added | -| RelationshipGraphDefinition | ❌ | Not supported, but support could be added | -| RemoteSiteSetting | ✅ | | -| Report | ✅ | | -| ReportFolder | ✅ | | -| ReportType | ✅ | | -| RestrictionRule | ✅ | | -| RetailExecutionSettings | ✅ | | -| Role | ✅ | | -| SalesAgreementSettings | ✅ | | -| SalesWorkQueueSettings | ✅ | | -| SamlSsoConfig | ✅ | | -| SchedulingObjective | ❌ | Not supported, but support could be added | -| SchedulingRule | ✅ | | -| SchemaSettings | ✅ | | -| ScoreCategory | ❌ | Not supported, but support could be added | -| SearchSettings | ✅ | | -| SecuritySettings | ✅ | | -| ServiceAISetupDefinition | ❌ | Not supported, but support could be added | -| ServiceAISetupField | ❌ | Not supported, but support could be added | -| ServiceChannel | ✅ | | -| ServiceCloudVoiceSettings | ✅ | | -| ServicePresenceStatus | ✅ | | -| ServiceSetupAssistantSettings | ✅ | | -| SharingCriteriaRule | ✅ | | -| SharingGuestRule | ✅ | | -| SharingOwnerRule | ✅ | | -| SharingReason | ✅ | | -| SharingRules | ⚠️ | Supports deploy/retrieve but not source tracking | -| SharingSet | ✅ | | -| SharingSettings | ✅ | | -| SharingTerritoryRule | ✅ | | -| SiteDotCom | ✅ | | -| SiteSettings | ✅ | | -| Skill | ✅ | | -| SlackApp | ✅ | | -| SocialCustomerServiceSettings | ✅ | | -| SocialProfileSettings | ✅ | | -| SourceTrackingSettings | ✅ | | -| StandardValue | ❌ | Not supported, but support could be added | -| StandardValueSet | ✅ | | -| StandardValueSetTranslation | ✅ | | -| StaticResource | ✅ | | -| StnryAssetEnvSrcCnfg | ✅ | | -| StreamingAppDataConnector | ❌ | Not supported, but support could be added | -| SubscriptionManagementSettings | ✅ | | -| SurveySettings | ✅ | | -| SvcCatalogCategory | ✅ | | -| SvcCatalogFulfillmentFlow | ✅ | | -| SvcCatalogItemDef | ✅ | | -| SynonymDictionary | ✅ | | -| SystemNotificationSettings | ✅ | | -| Territory | ✅ | | -| Territory2 | ✅ | | -| Territory2Model | ✅ | | -| Territory2Rule | ✅ | | -| Territory2Settings | ✅ | | -| Territory2Type | ✅ | | -| TimeSheetTemplate | ✅ | | -| TimelineObjectDefinition | ❌ | Not supported, but support could be added | -| TopicsForObjects | ✅ | | -| TrailheadSettings | ✅ | | -| TransactionSecurityPolicy | ✅ | | -| Translations | ✅ | | -| TrialOrgSettings | ✅ | | -| UIObjectRelationConfig | ✅ | | -| UiPlugin | ✅ | | -| UserAuthCertificate | ✅ | | -| UserCriteria | ✅ | | -| UserEngagementSettings | ✅ | | -| UserInterfaceSettings | ✅ | | -| UserManagementSettings | ✅ | | -| UserProfileSearchScope | ✅ | | -| UserProvisioningConfig | ✅ | | -| ValidationRule | ✅ | | -| VehicleAssetEmssnSrcCnfg | ✅ | | -| ViewDefinition | ✅ | | -| VirtualVisitConfig | ❌ | Not supported, but support could be added | -| VoiceSettings | ✅ | | -| WarrantyLifecycleMgmtSettings | ✅ | | -| WaveApplication | ✅ | | -| WaveComponent | ✅ | | -| WaveDashboard | ✅ | | -| WaveDataflow | ✅ | | -| WaveDataset | ✅ | | -| WaveLens | ✅ | | -| WaveRecipe | ✅ | | -| WaveTemplateBundle | ✅ | | -| WaveXmd | ✅ | | -| WebLink | ✅ | | -| WebStoreTemplate | ✅ | | -| WebToXSettings | ✅ | | -| WorkDotComSettings | ✅ | | -| WorkSkillRouting | ✅ | | -| Workflow | ✅ | | -| WorkflowAlert | ✅ | | -| WorkflowFieldUpdate | ✅ | | -| WorkflowFlowAction | ❌ | Not supported, but support could be added | -| WorkflowKnowledgePublish | ✅ | | -| WorkflowOutboundMessage | ✅ | | -| WorkflowRule | ✅ | | -| WorkflowSend | ✅ | | -| WorkflowTask | ✅ | | -| WorkforceEngagementSettings | ✅ | | +|Metadata Type|Support|Notes| +|:---|:---|:---| +|AIApplication|✅|| +|AIApplicationConfig|✅|| +|AIReplyRecommendationsSettings|✅|| +|AccountForecastSettings|✅|| +|AccountInsightsSettings|✅|| +|AccountIntelligenceSettings|✅|| +|AccountRelationshipShareRule|✅|| +|AccountSettings|✅|| +|AcctMgrTargetSettings|✅|| +|ActionLinkGroupTemplate|✅|| +|ActionPlanTemplate|✅|| +|ActionsSettings|✅|| +|ActivationPlatform|✅|| +|ActivitiesSettings|✅|| +|AddressSettings|✅|| +|AdvAccountForecastSet|✅|| +|AdvAcctForecastDimSource|✅|| +|AdvAcctForecastPeriodGroup|✅|| +|AnalyticSnapshot|✅|| +|AnalyticsDataServicesSettings|✅|| +|AnalyticsSettings|✅|| +|AnimationRule|✅|| +|ApexClass|✅|| +|ApexComponent|✅|| +|ApexEmailNotifications|✅|| +|ApexPage|✅|| +|ApexSettings|✅|| +|ApexTestSuite|✅|| +|ApexTrigger|✅|| +|AppAnalyticsSettings|✅|| +|AppExperienceSettings|✅|| +|AppExplorationDataConsent|❌|Not supported, but support could be added| +|AppMenu|✅|| +|ApplicationRecordTypeConfig|✅|| +|ApplicationSubtypeDefinition|✅|| +|AppointmentAssignmentPolicy|✅|| +|AppointmentSchedulingPolicy|✅|| +|ApprovalProcess|✅|| +|ArchiveSettings|✅|| +|AssessmentQuestion|✅|| +|AssessmentQuestionSet|✅|| +|AssignmentRules|✅|| +|AssistantContextItem|✅|| +|AssistantDefinition|✅|| +|AssistantSkillQuickAction|✅|| +|AssistantSkillSobjectAction|✅|| +|AssistantVersion|✅|| +|AssociationEngineSettings|✅|| +|Audience|✅|| +|AuraDefinitionBundle|✅|| +|AuthProvider|✅|| +|AutoResponseRules|✅|| +|AutomatedContactsSettings|✅|| +|BatchCalcJobDefinition|✅|| +|BatchProcessJobDefinition|✅|| +|BenefitAction|✅|| +|BlacklistedConsumer|✅|| +|BldgEnrgyIntensityCnfg|✅|| +|BlockchainSettings|✅|| +|Bot|✅|| +|BotSettings|✅|| +|BotTemplate|✅|| +|BotVersion|✅|| +|BranchManagementSettings|✅|| +|BrandingSet|✅|| +|BriefcaseDefinition|✅|| +|BusinessHoursSettings|✅|| +|BusinessProcess|✅|| +|BusinessProcessGroup|✅|| +|BusinessProcessTypeDefinition|✅|| +|CMSConnectSource|✅|| +|CallCenter|✅|| +|CallCenterRoutingMap|✅|| +|CallCoachingMediaProvider|⚠️|Supports deploy/retrieve but not source tracking| +|CallCtrAgentFavTrfrDest|❌|Not supported, but support could be added| +|CampaignInfluenceModel|✅|| +|CampaignSettings|✅|| +|CanvasMetadata|✅|| +|CareBenefitVerifySettings|✅|| +|CareLimitType|✅|| +|CareProviderSearchConfig|✅|| +|CareRequestConfiguration|✅|| +|CareSystemFieldMapping|✅|| +|CaseSettings|✅|| +|CaseSubjectParticle|✅|| +|Certificate|✅|| +|ChannelLayout|✅|| +|ChannelObjectLinkingRule|✅|| +|ChatterAnswersSettings|✅|| +|ChatterEmailsMDSettings|✅|| +|ChatterExtension|✅|| +|ChatterSettings|✅|| +|CleanDataService|✅|| +|CommandAction|✅|| +|CommerceSettings|✅|| +|CommunitiesSettings|✅|| +|Community|✅|| +|CommunityTemplateDefinition|✅|| +|CommunityThemeDefinition|✅|| +|CompactLayout|✅|| +|CompanySettings|✅|| +|ConnectedApp|✅|| +|ConnectedAppSettings|✅|| +|ConnectedSystem|✅|| +|ContentAsset|✅|| +|ContentSettings|✅|| +|ContractSettings|✅|| +|ContractType|❌|Not supported, but support could be added| +|ConversationVendorInfo|✅|| +|ConversationalIntelligenceSettings|✅|| +|CorsWhitelistOrigin|✅|| +|CspTrustedSite|✅|| +|CurrencySettings|✅|| +|CustomAddressFieldSettings|✅|| +|CustomApplication|✅|| +|CustomApplicationComponent|✅|| +|CustomFeedFilter|✅|| +|CustomField|✅|| +|CustomHelpMenuSection|✅|| +|CustomIndex|✅|| +|CustomLabels|✅|| +|CustomMetadata|✅|| +|CustomNotificationType|✅|| +|CustomObject|✅|| +|CustomObjectTranslation|✅|| +|CustomPageWebLink|✅|| +|CustomPermission|✅|| +|CustomSite|✅|| +|CustomTab|✅|| +|CustomValue|❌|Not supported, but support could be added| +|CustomerDataPlatformSettings|✅|| +|Dashboard|✅|| +|DashboardFolder|✅|| +|DataCategoryGroup|✅|| +|DataConnectorIngestApi|✅|| +|DataConnectorS3|✅|| +|DataDotComSettings|✅|| +|DataImportManagementSettings|✅|| +|DataMapping|✅|| +|DataMappingFieldDefinition|✅|| +|DataMappingObjectDefinition|✅|| +|DataMappingSchema|✅|| +|DataSource|✅|| +|DataSourceObject|✅|| +|DataSourceTenant|✅|| +|DataStreamDefinition|✅|| +|DecisionMatrixDefinition|✅|| +|DecisionMatrixDefinitionVersion|✅|| +|DecisionTable|✅|| +|DecisionTableDatasetLink|✅|| +|DelegateGroup|✅|| +|DeploymentSettings|✅|| +|DevHubSettings|✅|| +|DiscoveryAIModel|✅|| +|DiscoveryGoal|✅|| +|DiscoverySettings|✅|| +|DiscoveryStory|❌|Not supported, but support could be added| +|Document|✅|| +|DocumentChecklistSettings|✅|| +|DocumentFolder|✅|| +|DocumentGenerationSetting|✅|| +|DocumentType|✅|| +|DuplicateRule|✅|| +|EACSettings|✅|| +|ESignatureConfig|✅|| +|ESignatureEnvelopeConfig|✅|| +|EclairGeoData|✅|| +|EinsteinAgentSettings|✅|| +|EinsteinAssistantSettings|✅|| +|EinsteinDealInsightsSettings|✅|| +|EinsteinDocumentCaptureSettings|✅|| +|EmailAdministrationSettings|✅|| +|EmailFolder|✅|| +|EmailIntegrationSettings|✅|| +|EmailServicesFunction|✅|| +|EmailTemplate|✅|| +|EmailTemplateFolder|✅|| +|EmailTemplateSettings|✅|| +|EmbeddedServiceBranding|✅|| +|EmbeddedServiceConfig|✅|| +|EmbeddedServiceFlowConfig|✅|| +|EmbeddedServiceLiveAgent|✅|| +|EmbeddedServiceMenuSettings|✅|| +|EmployeeDataSyncProfile|❌|Not supported, but support could be added| +|EmployeeFieldAccessSettings|✅|| +|EmployeeUserSettings|✅|| +|EnhancedNotesSettings|✅|| +|EntitlementProcess|✅|| +|EntitlementSettings|✅|| +|EntitlementTemplate|✅|| +|EntityImplements|✅|| +|EscalationRules|✅|| +|EssentialsSettings|✅|| +|EventSettings|✅|| +|ExperienceBundle|✅|| +|ExperienceBundleSettings|✅|| +|ExplainabilityActionDefinition|✅|| +|ExplainabilityActionVersion|✅|| +|ExpressionSetDefinition|✅|| +|ExpressionSetDefinitionVersion|✅|| +|ExternalAIModel|❌|Not supported, but support could be added| +|ExternalCredential|❌|Not supported, but support could be added| +|ExternalDataConnector|✅|| +|ExternalDataSource|✅|| +|ExternalDataSrcDescriptor|❌|Not supported, but support could be added| +|ExternalDataTranField|❌|Not supported, but support could be added| +|ExternalDataTranObject|❌|Not supported, but support could be added| +|ExternalServiceRegistration|✅|| +|ExternalServicesSettings|✅|| +|FeatureParameterBoolean|✅|| +|FeatureParameterDate|✅|| +|FeatureParameterInteger|✅|| +|FederationDataMappingUsage|✅|| +|FieldRestrictionRule|✅|| +|FieldServiceMobileExtension|✅|| +|FieldServiceSettings|✅|| +|FieldSet|✅|| +|FieldSrcTrgtRelationship|✅|| +|FileUploadAndDownloadSecuritySettings|✅|| +|FilesConnectSettings|✅|| +|FlexiPage|✅|| +|Flow|✅|| +|FlowCategory|✅|| +|FlowDefinition|⚠️|Supports deploy/retrieve but not source tracking| +|FlowSettings|✅|| +|FlowTest|✅|| +|ForecastingFilter|❌|Not supported, but support could be added| +|ForecastingFilterCondition|❌|Not supported, but support could be added| +|ForecastingObjectListSettings|✅|| +|ForecastingSettings|✅|| +|ForecastingSourceDefinition|✅|| +|ForecastingType|✅|| +|ForecastingTypeSource|✅|| +|FormulaSettings|✅|| +|FunctionReference|⚠️|Supports deploy/retrieve but not source tracking| +|GatewayProviderPaymentMethodType|✅|| +|GlobalValueSet|✅|| +|GlobalValueSetTranslation|✅|| +|GoogleAppsSettings|✅|| +|Group|✅|| +|HighVelocitySalesSettings|✅|| +|HomePageComponent|✅|| +|HomePageLayout|✅|| +|IPAddressRange|✅|| +|Icon|✅|| +|IdeasSettings|✅|| +|IdentityVerificationProcDef|❌|Not supported, but support could be added| +|IframeWhiteListUrlSettings|✅|| +|InboundCertificate|✅|| +|InboundNetworkConnection|✅|| +|IncidentMgmtSettings|✅|| +|Index|⚠️|Supports deploy/retrieve but not source tracking| +|IndustriesAutomotiveSettings|✅|| +|IndustriesLoyaltySettings|✅|| +|IndustriesManufacturingSettings|✅|| +|IndustriesSettings|✅|| +|InstalledPackage|⚠️|Supports deploy/retrieve but not source tracking| +|InterestTaggingSettings|✅|| +|InternalDataConnector|✅|| +|InvLatePymntRiskCalcSettings|✅|| +|InventorySettings|✅|| +|InvocableActionSettings|✅|| +|IoTSettings|✅|| +|KeywordList|✅|| +|KnowledgeSettings|✅|| +|LanguageSettings|✅|| +|Layout|✅|| +|LeadConfigSettings|✅|| +|LeadConvertSettings|✅|| +|Letterhead|✅|| +|LightningBolt|✅|| +|LightningComponentBundle|✅|| +|LightningExperienceSettings|✅|| +|LightningExperienceTheme|✅|| +|LightningMessageChannel|✅|| +|LightningOnboardingConfig|✅|| +|ListView|✅|| +|LiveAgentSettings|✅|| +|LiveChatAgentConfig|✅|| +|LiveChatButton|✅|| +|LiveChatDeployment|✅|| +|LiveChatSensitiveDataRule|✅|| +|LiveMessageSettings|✅|| +|LoyaltyProgramSetup|⚠️|Supports deploy/retrieve but not source tracking| +|MLDataDefinition|✅|| +|MLPredictionDefinition|✅|| +|MLRecommendationDefinition|✅|| +|MacroSettings|✅|| +|MailMergeSettings|✅|| +|ManagedContentType|⚠️|Supports deploy/retrieve but not source tracking| +|ManagedTopics|✅|| +|MapsAndLocationSettings|✅|| +|MarketSegmentDefinition|❌|Not supported, but support could be added| +|MarketingAppExtActivity|❌|Not supported, but support could be added| +|MarketingAppExtension|❌|Not supported, but support could be added| +|MatchingRules|✅|| +|MediaAdSalesSettings|✅|| +|MeetingsSettings|✅|| +|MessagingChannel|❌|Not supported, but support could be added (but not for tracking)| +|MfgProgramTemplate|❌|Not supported, but support could be added| +|MilestoneType|✅|| +|MktCalcInsightObjectDef|✅|| +|MktDataTranObject|✅|| +|MlDomain|✅|| +|MobSecurityCertPinConfig|✅|| +|MobileApplicationDetail|✅|| +|MobileSecurityAssignment|✅|| +|MobileSecurityPolicy|✅|| +|MobileSecurityPolicySet|✅|| +|MobileSettings|✅|| +|ModerationRule|✅|| +|MutingPermissionSet|✅|| +|MyDomainDiscoverableLogin|✅|| +|MyDomainSettings|✅|| +|NameSettings|✅|| +|NamedCredential|✅|| +|NavigationMenu|✅|| +|Network|✅|| +|NetworkBranding|✅|| +|NotificationTypeConfig|✅|| +|NotificationsSettings|✅|| +|OauthCustomScope|✅|| +|ObjectHierarchyRelationship|✅|| +|ObjectLinkingSettings|✅|| +|ObjectSourceTargetMap|✅|| +|OcrSampleDocument|✅|| +|OcrTemplate|✅|| +|OmniChannelSettings|✅|| +|OmniDataTransform|✅|| +|OmniIntegrationProcedure|✅|| +|OmniInteractionAccessConfig|✅|| +|OmniInteractionConfig|✅|| +|OmniScript|✅|| +|OmniUiCard|✅|| +|OnlineSalesSettings|✅|| +|OpportunityInsightsSettings|✅|| +|OpportunityScoreSettings|✅|| +|OpportunitySettings|✅|| +|OrderManagementSettings|✅|| +|OrderSettings|✅|| +|OrgSettings|✅|| +|OutboundNetworkConnection|✅|| +|PardotEinsteinSettings|✅|| +|PardotSettings|✅|| +|ParticipantRole|✅|| +|PartyDataModelSettings|✅|| +|PathAssistant|✅|| +|PathAssistantSettings|✅|| +|PaymentGatewayProvider|✅|| +|PaymentsManagementEnabledSettings|✅|| +|PermissionSet|✅|| +|PermissionSetGroup|✅|| +|PermissionSetLicenseDefinition|✅|| +|PicklistSettings|✅|| +|PicklistValue|❌|Not supported, but support could be added| +|PlatformCachePartition|✅|| +|PlatformEventChannel|✅|| +|PlatformEventChannelMember|✅|| +|PlatformEventSubscriberConfig|✅|| +|PlatformSlackSettings|✅|| +|PortalsSettings|✅|| +|PostTemplate|✅|| +|PredictionBuilderSettings|✅|| +|PresenceDeclineReason|✅|| +|PresenceUserConfig|✅|| +|PrivacySettings|✅|| +|ProductAttributeSet|✅|| +|ProductSettings|✅|| +|Profile|✅|| +|ProfilePasswordPolicy|✅|| +|ProfileSessionSetting|✅|| +|Prompt|✅|| +|Queue|✅|| +|QueueRoutingConfig|✅|| +|QuickAction|✅|| +|QuickTextSettings|✅|| +|QuoteSettings|✅|| +|RealTimeEventSettings|✅|| +|RecommendationBuilderSettings|✅|| +|RecommendationStrategy|✅|| +|RecordActionDeployment|✅|| +|RecordAlertCategory|✅|| +|RecordAlertDataSource|✅|| +|RecordPageSettings|✅|| +|RecordType|✅|| +|RedirectWhitelistUrl|✅|| +|RegisteredExternalService|❌|Not supported, but support could be added| +|RelatedRecordAssocCriteria|❌|Not supported, but support could be added| +|RelationshipGraphDefinition|❌|Not supported, but support could be added| +|RemoteSiteSetting|✅|| +|Report|✅|| +|ReportFolder|✅|| +|ReportType|✅|| +|RestrictionRule|✅|| +|RetailExecutionSettings|✅|| +|Role|✅|| +|SalesAgreementSettings|✅|| +|SalesWorkQueueSettings|✅|| +|SamlSsoConfig|✅|| +|SchedulingObjective|❌|Not supported, but support could be added| +|SchedulingRule|✅|| +|SchemaSettings|✅|| +|ScoreCategory|❌|Not supported, but support could be added| +|SearchSettings|✅|| +|SecuritySettings|✅|| +|ServiceAISetupDefinition|❌|Not supported, but support could be added| +|ServiceAISetupField|❌|Not supported, but support could be added| +|ServiceChannel|✅|| +|ServiceCloudVoiceSettings|✅|| +|ServicePresenceStatus|✅|| +|ServiceSetupAssistantSettings|✅|| +|SharingCriteriaRule|✅|| +|SharingGuestRule|✅|| +|SharingOwnerRule|✅|| +|SharingReason|✅|| +|SharingRules|⚠️|Supports deploy/retrieve but not source tracking| +|SharingSet|✅|| +|SharingSettings|✅|| +|SharingTerritoryRule|✅|| +|SiteDotCom|✅|| +|SiteSettings|✅|| +|Skill|✅|| +|SlackApp|✅|| +|SocialCustomerServiceSettings|✅|| +|SocialProfileSettings|✅|| +|SourceTrackingSettings|✅|| +|StandardValue|❌|Not supported, but support could be added| +|StandardValueSet|✅|| +|StandardValueSetTranslation|✅|| +|StaticResource|✅|| +|StnryAssetEnvSrcCnfg|✅|| +|StreamingAppDataConnector|❌|Not supported, but support could be added| +|SubscriptionManagementSettings|✅|| +|SurveySettings|✅|| +|SvcCatalogCategory|✅|| +|SvcCatalogFulfillmentFlow|✅|| +|SvcCatalogItemDef|✅|| +|SynonymDictionary|✅|| +|SystemNotificationSettings|✅|| +|Territory|✅|| +|Territory2|✅|| +|Territory2Model|✅|| +|Territory2Rule|✅|| +|Territory2Settings|✅|| +|Territory2Type|✅|| +|TimeSheetTemplate|✅|| +|TimelineObjectDefinition|❌|Not supported, but support could be added| +|TopicsForObjects|✅|| +|TrailheadSettings|✅|| +|TransactionSecurityPolicy|✅|| +|Translations|✅|| +|TrialOrgSettings|✅|| +|UIObjectRelationConfig|✅|| +|UiPlugin|✅|| +|UserAuthCertificate|✅|| +|UserCriteria|✅|| +|UserEngagementSettings|✅|| +|UserInterfaceSettings|✅|| +|UserManagementSettings|✅|| +|UserProfileSearchScope|✅|| +|UserProvisioningConfig|✅|| +|ValidationRule|✅|| +|VehicleAssetEmssnSrcCnfg|✅|| +|ViewDefinition|✅|| +|VirtualVisitConfig|❌|Not supported, but support could be added| +|VoiceSettings|✅|| +|WarrantyLifecycleMgmtSettings|✅|| +|WaveApplication|✅|| +|WaveComponent|✅|| +|WaveDashboard|✅|| +|WaveDataflow|✅|| +|WaveDataset|✅|| +|WaveLens|✅|| +|WaveRecipe|✅|| +|WaveTemplateBundle|✅|| +|WaveXmd|✅|| +|WebLink|✅|| +|WebStoreTemplate|✅|| +|WebToXSettings|✅|| +|WorkDotComSettings|✅|| +|WorkSkillRouting|✅|| +|Workflow|✅|| +|WorkflowAlert|✅|| +|WorkflowFieldUpdate|✅|| +|WorkflowFlowAction|❌|Not supported, but support could be added| +|WorkflowKnowledgePublish|✅|| +|WorkflowOutboundMessage|✅|| +|WorkflowRule|✅|| +|WorkflowSend|✅|| +|WorkflowTask|✅|| +|WorkforceEngagementSettings|✅|| + -## Next Release (v56) -v56 introduces the following new types. Here's their current level of support +## Next Release (v56) +v56 introduces the following new types. Here's their current level of support -| Metadata Type | Support | Notes | -| :------------------------------------ | :------ | :---------------------------------------- | -| AccountingSettings | ✅ | | -| BotBlock | ❌ | Not supported, but support could be added | -| CollectionsDashboardSettings | ✅ | | -| CustomizablePropensityScoringSettings | ✅ | | -| DataPackageKitDefinition | ❌ | Not supported, but support could be added | -| DataPackageKitObject | ❌ | Not supported, but support could be added | -| DataSourceBundleDefinition | ❌ | Not supported, but support could be added | -| DataSrcDataModelFieldMap | ❌ | Not supported, but support could be added | -| DataStreamTemplate | ❌ | Not supported, but support could be added | -| ExperienceContainer | ❌ | Not supported, but support could be added | -| ExplainabilityMsgActionDefinition | ❌ | Not supported, but support could be added | -| FuelType | ❌ | Not supported, but support could be added | -| IncludeEstTaxInQuoteSettings | ✅ | | -| MfgServiceConsoleSettings | ✅ | | -| OauthOidcSettings | ✅ | | -| SearchExperience | ❌ | Not supported, but support could be added | -| SearchExperienceField | ❌ | Not supported, but support could be added | -| SearchExperienceObject | ❌ | Not supported, but support could be added | -| SustainabilityUom | ❌ | Not supported, but support could be added | +|Metadata Type|Support|Notes| +|:---|:---|:---| +|AccountingFieldMapping|❌|Not supported, but support could be added| +|AccountingSettings|✅|| +|BotBlock|❌|Not supported, but support could be added| +|CollectionsDashboardSettings|✅|| +|CustomizablePropensityScoringSettings|✅|| +|DataPackageKitDefinition|❌|Not supported, but support could be added| +|DataPackageKitObject|❌|Not supported, but support could be added| +|DataSourceBundleDefinition|❌|Not supported, but support could be added| +|DataSrcDataModelFieldMap|❌|Not supported, but support could be added| +|DataStreamTemplate|❌|Not supported, but support could be added| +|ExplainabilityMsgActionDefinition|❌|Not supported, but support could be added| +|ExpressionSetObjectAlias|❌|Not supported, but support could be added| +|FuelType|❌|Not supported, but support could be added| +|FuelTypeSustnUom|❌|Not supported, but support could be added| +|IncludeEstTaxInQuoteSettings|✅|| +|MfgServiceConsoleSettings|✅|| +|OauthOidcSettings|✅|| +|SearchExperience|❌|Not supported, but support could be added| +|SearchExperienceField|❌|Not supported, but support could be added| +|SearchExperienceObject|❌|Not supported, but support could be added| +|SustainabilityUom|❌|Not supported, but support could be added| +|SustnUomConversion|❌|Not supported, but support could be added| ## Additional Types -> The following types are supported by this library but not in the coverage reports for either version. These are typically +> The following types are supported by this library but not in the coverage reports for either version. These are typically > > 1. types that have been removed from the metadata API but were supported in previous versions > 1. types that are available for pilots but not officially part of the metadata API (use with caution)