LCOV - code coverage report
Current view: top level - dashql-app/src/connections/salesforce - salesforce_connector_descriptor.ts Coverage Total Hit
Test: DashQL d805a4b Lines: 84.2 % 38 32
Test Date: 2026-11-09 20:22:13

            Line data    Source code
       1              : import type { ConnectorDescriptor } from '../connector_descriptor.js';
       2              : import { CONNECTOR_INFOS, ConnectorType, SALESFORCE_DATA_CLOUD_CONNECTOR, DBCOM_CONNECTOR } from '../connector_info.js';
       3              : import { SALESFORCE_CATALOG_DATABASE, SALESFORCE_CATALOG_SCHEMA, HYPER_CLOUD_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              : import { SALESFORCE_CLIENT_FUNCTIONS } from './salesforce_client_functions.js';
       7              : 
       8              : /// Salesforce Data Cloud connections
       9            1 : export const SALESFORCE_CONNECTOR_DESCRIPTOR: ConnectorDescriptor<'salesforce'> = {
      10            1 :     info: CONNECTOR_INFOS[ConnectorType.SALESFORCE_DATA_CLOUD],
      11            1 :     paramsKey: 'salesforce',
      12            1 :     detailsType: SALESFORCE_DATA_CLOUD_CONNECTOR,
      13            1 :     defaultParams: () => ({ instanceUrl: '', appConsumerKey: '', appConsumerSecret: '', login: '' }),
      14            1 :     createDetails: createSalesforceConnectionStateDetails,
      15            1 :     reduce: reduceSalesforceConnectionState,
      16            1 :     withoutDraftRows: params => params,
      17              :     // Keep instanceUrl, appConsumerKey and the login hint; drop the connected-app secret.
      18            1 :     sanitizeForSharing: (params, withLoginHint) => ({ ...params, appConsumerSecret: "", ...(withLoginHint ? {} : { login: "" }) }),
      19            1 :     loginHint: params => params.login || null,
      20              :     // The login stays out, another user of the same org reuses the cached results
      21            1 :     cacheSignature: params => ({
      22            1 :         case: "salesforce",
      23            1 :         instanceUrl: params.instanceUrl,
      24            1 :         appConsumerKey: params.appConsumerKey,
      25            1 :     }),
      26            1 :     catalogNameDefaults: () => ({ databaseName: SALESFORCE_CATALOG_DATABASE, schemaName: SALESFORCE_CATALOG_SCHEMA }),
      27            1 :     executeQuery: (details, args, abort) => requireChannel(args.channelOverride?.type === 'salesforce' ? args.channelOverride.channel : details.channel, 'Salesforce')
      28            0 :         .executeQuery(queryParam(args), abort),
      29            1 :     maxConcurrentQueries: () => 1,
      30            1 :     catalogIsDurable: () => true,
      31            1 :     readsAttachments: () => false,
      32            1 :     clientFunctions: SALESFORCE_CLIENT_FUNCTIONS,
      33            1 : };
      34              : 
      35              : /// Database.com connections, they behave like Salesforce Data Cloud connections for now
      36            1 : export const DBCOM_CONNECTOR_DESCRIPTOR: ConnectorDescriptor<'dbcom'> = {
      37            1 :     ...SALESFORCE_CONNECTOR_DESCRIPTOR,
      38            1 :     info: CONNECTOR_INFOS[ConnectorType.DBCOM],
      39            1 :     paramsKey: 'dbcom',
      40            1 :     detailsType: DBCOM_CONNECTOR,
      41            1 :     defaultParams: () => ({ ...SALESFORCE_CONNECTOR_DESCRIPTOR.defaultParams(), databaseName: HYPER_CLOUD_DEFAULT_DATABASE_NAME }),
      42              :     // It isn't known whether Database.com has the Data 360 API
      43            1 :     clientFunctions: undefined,
      44            1 :     cacheSignature: params => ({
      45            0 :         ...SALESFORCE_CONNECTOR_DESCRIPTOR.cacheSignature(params) as object,
      46            0 :         case: "dbcom",
      47            0 :         databaseName: params.databaseName || HYPER_CLOUD_DEFAULT_DATABASE_NAME,
      48            0 :     }),
      49            1 :     executeQuery: (details, args, abort) => requireChannel(args.channelOverride?.type === 'salesforce' ? args.channelOverride.channel : details.channel, 'Database.com')
      50            0 :         .executeQuery(queryParam(args), abort),
      51            1 : };
        

Generated by: LCOV version 2.0-1