LCOV - code coverage report
Current view: top level - dashql-app/src/connections/salesforce - salesforce_connector_descriptor.ts Coverage Total Hit
Test: DashQL 915828b Lines: 83.3 % 36 30
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import type { ConnectorDescriptor } from '../connector_descriptor.js';
       2              : import { CONNECTOR_INFOS, ConnectorType, SALESFORCE_DATA_CLOUD_CONNECTOR, SIDB_CONNECTOR } from '../connector_info.js';
       3              : import { SALESFORCE_CATALOG_DATABASE, SALESFORCE_CATALOG_SCHEMA, SIDB_DEFAULT_DATABASE_NAME } from './salesforce_catalog_update.js';
       4              : import { createSalesforceConnectionStateDetails, reduceSalesforceConnectionState } from './salesforce_connection_state.js';
       5              : import { queryParam, requireChannel } from '../query_channel.js';
       6              : 
       7              : /// Salesforce Data Cloud connections
       8            1 : export const SALESFORCE_CONNECTOR_DESCRIPTOR: ConnectorDescriptor<'salesforce'> = {
       9            1 :     info: CONNECTOR_INFOS[ConnectorType.SALESFORCE_DATA_CLOUD],
      10            1 :     paramsKey: 'salesforce',
      11            1 :     detailsType: SALESFORCE_DATA_CLOUD_CONNECTOR,
      12            1 :     defaultParams: () => ({ instanceUrl: '', appConsumerKey: '', appConsumerSecret: '', login: '' }),
      13            1 :     createDetails: createSalesforceConnectionStateDetails,
      14            1 :     reduce: reduceSalesforceConnectionState,
      15            1 :     withoutDraftRows: params => params,
      16              :     // Keep instanceUrl, appConsumerKey and the login hint; drop the connected-app secret.
      17            1 :     sanitizeForSharing: (params, withLoginHint) => ({ ...params, appConsumerSecret: "", ...(withLoginHint ? {} : { login: "" }) }),
      18            1 :     loginHint: params => params.login || null,
      19              :     // The login stays out, another user of the same org reuses the cached results
      20            1 :     cacheSignature: params => ({
      21            1 :         case: "salesforce",
      22            1 :         instanceUrl: params.instanceUrl,
      23            1 :         appConsumerKey: params.appConsumerKey,
      24            1 :     }),
      25            1 :     catalogNameDefaults: () => ({ databaseName: SALESFORCE_CATALOG_DATABASE, schemaName: SALESFORCE_CATALOG_SCHEMA }),
      26            1 :     executeQuery: (details, args, abort) => requireChannel(args.channelOverride?.type === 'salesforce' ? args.channelOverride.channel : details.channel, 'Salesforce')
      27            0 :         .executeQuery(queryParam(args), abort),
      28            1 :     maxConcurrentQueries: () => 1,
      29            1 :     catalogIsDurable: () => true,
      30            1 :     readsAttachments: () => false,
      31            1 : };
      32              : 
      33              : /// SIDB connections, they behave like Salesforce Data Cloud connections for now
      34            1 : export const SIDB_CONNECTOR_DESCRIPTOR: ConnectorDescriptor<'sidb'> = {
      35            1 :     ...SALESFORCE_CONNECTOR_DESCRIPTOR,
      36            1 :     info: CONNECTOR_INFOS[ConnectorType.SIDB],
      37            1 :     paramsKey: 'sidb',
      38            1 :     detailsType: SIDB_CONNECTOR,
      39            1 :     defaultParams: () => ({ ...SALESFORCE_CONNECTOR_DESCRIPTOR.defaultParams(), databaseName: SIDB_DEFAULT_DATABASE_NAME }),
      40            1 :     cacheSignature: params => ({
      41            0 :         ...SALESFORCE_CONNECTOR_DESCRIPTOR.cacheSignature(params) as object,
      42            0 :         case: "sidb",
      43            0 :         databaseName: params.databaseName || SIDB_DEFAULT_DATABASE_NAME,
      44            0 :     }),
      45            1 :     executeQuery: (details, args, abort) => requireChannel(args.channelOverride?.type === 'salesforce' ? args.channelOverride.channel : details.channel, 'SIDB')
      46            0 :         .executeQuery(queryParam(args), abort),
      47            1 : };
        

Generated by: LCOV version 2.0-1