Skip to content

Commit

Permalink
Salesforce: whitelist standard objects (#11093)
Browse files Browse the repository at this point in the history
  • Loading branch information
PopDaph authored Feb 27, 2025
1 parent 647828e commit ef7c3a0
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
63 changes: 63 additions & 0 deletions connectors/src/connectors/salesforce/lib/permissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,66 @@ export const getContentNodeParents = ({
)
);
};

export const isStandardObjectWhitelisted = (objectName: string) => {
const whitelist = [
// From https://architect.salesforce.com/diagrams/data-models/sales-cloud/sales-cloud-overview
"Account",
"AccountContactRelation",
"AccountTeamMember",
"Asset",
"Case",
"Campaign",
"CampaignMember",
"Contact",
"Contract",
"ContractContactRole",
"ForecastItem",
"Lead",
"Opportunity",
"OpportunityHistory",
"OpportunityContactRole",
"OpportunityForecast",
"OpportunityLineItem",
"OpportunityTeamMember",
"Order",
"Partner",
"PartnerRole",
"PricebookEntry",
"Product2",
"Quote",
"User",
"Territory",
"AccountTerritory",
// https://architect.salesforce.com/diagrams/data-models/service-cloud/service-cloud-overview
"Account",
"AccountContactRelation",
"Case",
"CaseArticle",
"CaseComment",
"CaseHistory",
"CaseMilestone",
"CaseRelatedIssue",
"CaseSolution",
"CaseTeamMember",
"CaseTeamRole",
"CategoryData",
"CategoryNode",
"Contact",
"ContactRequest",
"ContractLineItem",
"EmailMessage",
"Entitlement",
"EntitlementContact",
"Incident",
"KnowledgeArticle",
"KnowledgeArticleVersion",
"Milestone",
"Problem",
"ServiceContract",
"Solution",
"Swarm",
"SwarmMember",
];
return whitelist.includes(objectName);
};
4 changes: 4 additions & 0 deletions connectors/src/connectors/salesforce/lib/salesforce_api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
isValidSchemaInternalId,
} from "@connectors/connectors/salesforce/lib/internal_ids";
import type { SalesforceAPICredentials } from "@connectors/connectors/salesforce/lib/oauth";
import { isStandardObjectWhitelisted } from "@connectors/connectors/salesforce/lib/permissions";
import type {
RemoteDBDatabase,
RemoteDBSchema,
Expand Down Expand Up @@ -128,6 +129,9 @@ export async function fetchTables({
return new Ok(
tables.sobjects
.filter((obj) => (isCustomSchema ? obj.custom : !obj.custom))
.filter((obj) => {
return isCustomSchema ? true : isStandardObjectWhitelisted(obj.name);
})
.map((obj) => ({
name: obj.name,
database_name: INTERNAL_ID_DATABASE,
Expand Down

0 comments on commit ef7c3a0

Please sign in to comment.