-
Notifications
You must be signed in to change notification settings - Fork 5.5k
[Salesforce] Knowledge new action components #18216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
WalkthroughAdds Salesforce Knowledge support: new common knowledge props, two actions to fetch knowledge articles and data category groups, app-level methods including a generic paginator and two REST callers, bumps package version to 1.9.0, and increments many action/source version metadata. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor U as User
participant A as Action: Get Knowledge Articles
participant APP as App: salesforce_rest_api.app
participant SF as Salesforce
U->>A: Run(q, channel, categories, language, queryMethod, sort)
A->>APP: paginate({ requester: getKnowledgeArticles, requesterArgs })
loop Pages
APP->>SF: GET /services/data/.../support/knowledgeArticles (pageSize,pageNumber,params,headers)
SF-->>APP: 200 { articles, nextPageUrl }
APP-->>APP: accumulate articles
alt nextPageUrl
APP->>SF: GET nextPageUrl (headers)
SF-->>APP: next page
else
Note over APP: stop pagination
end
end
APP-->>A: aggregated articles[]
A-->>U: items[] and summary
sequenceDiagram
autonumber
actor U as User
participant A as Action: Get Knowledge Data Category Groups
participant APP as App
participant SF as Salesforce
U->>A: Run(topCategoriesOnly, language)
A->>APP: getKnowledgeDataCategoryGroups({ params: { sObjectName:"KnowledgeArticleVersion", topCategoriesOnly }, headers })
APP->>SF: GET /services/data/.../support/dataCategoryGroups?sObjectName&topCategoriesOnly
SF-->>APP: 200 { categoryGroups[] }
APP-->>A: response
A-->>U: response and summary
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
dd90c25 to
e2a0cea
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs (1)
32-38: Pass $ and explicit Accept header to match other actions and aid debugging.Keeps request metadata consistent and ensures JSON response.
- const response = await this.app._makeRequest({ - url: `${this.app._baseApiVersionUrl()}/support/dataCategoryGroups`, - params: { - sObjectName, - topCategoriesOnly, - }, - }); + const response = await this.app._makeRequest({ + $, + url: `${this.app._baseApiVersionUrl()}/support/dataCategoryGroups`, + headers: { + ...this.app._makeRequestHeaders(), + "Accept": "application/json", + }, + params: { sObjectName, topCategoriesOnly }, + });components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs (2)
86-117: More robust pagination: follow nextPageUrl when provided.The API surfaces
nextPageUrl; relying only onpageNumber++can desync from the server. UsenextPageUrlwhen present; fall back to page numbers otherwise.- async paginate({ + async paginate({ requester, requesterArgs, resultsKey = "articles", maxRequests = 3, pageSize = 100, } = {}) { - let allItems = []; - let currentPage = 1; - let hasMore = true; + let allItems = []; + let currentPage = 1; + let hasMore = true; + let nextUrl = null; while (hasMore && currentPage <= maxRequests) { - const response = await requester({ - ...requesterArgs, - params: { - ...requesterArgs?.params, - pageSize, - pageNumber: currentPage, - }, - }); + const response = await requester( + nextUrl + ? { ...requesterArgs, url: nextUrl } + : { + ...requesterArgs, + params: { + ...requesterArgs?.params, + pageSize, + pageNumber: currentPage, + }, + }, + ); - const respData = response?.data ?? response; + const respData = response?.data ?? response; const items = respData?.[resultsKey]; if (items?.length) { allItems = [ ...allItems, ...items, ]; } - hasMore = Boolean(respData?.nextPageUrl); + nextUrl = respData?.nextPageUrl || null; + hasMore = Boolean(nextUrl); currentPage++; }
145-151: Nit: avoid sending undefined params.Keeps the query string clean; some backends mis-handle empty keys.
- params: { - q, - channel, - categories, - queryMethod, - sort, - }, + params: Object.fromEntries( + Object.entries({ q, channel, categories, queryMethod, sort }) + .filter(([, v]) => v != null && v !== "") + ),
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs(1 hunks)components/salesforce_rest_api/package.json(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (3)
components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs (1)
components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs (1)
response(36-41)
components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs (2)
components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs (1)
response(98-105)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs (1)
response(32-38)
components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs (2)
components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs (1)
response(36-41)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs (1)
response(32-38)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Verify TypeScript components
- GitHub Check: Publish TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (2)
components/salesforce_rest_api/package.json (1)
3-3: Semver bump to 1.8.0 looks correct.Minor version bump aligns with adding new actions.
components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs (1)
107-116: Verify_makeRequestreturn shape before pagination
The action currently treatsresponse[resultsKey]andresponse.nextPageUrlas top-level, but if_makeRequestreturns an object underdata, both will be undefined and break pagination. Confirm how_makeRequestsurfaces the API payload inget-knowledge-articles, and, if it wraps underdata, update accordingly:- const items = response[resultsKey]; + const respData = response?.data ?? response; + const items = respData?.[resultsKey]; @@ - hasMore = !!response.nextPageUrl; + hasMore = Boolean(respData?.nextPageUrl);
...rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs
Outdated
Show resolved
Hide resolved
042f706 to
7f5b814
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (54)
components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/common/knowledge.mjs(1 hunks)components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs(1 hunks)components/salesforce_rest_api/actions/create-account/create-account.mjs(1 hunks)components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs(1 hunks)components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/create-case/create-case.mjs(1 hunks)components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs(1 hunks)components/salesforce_rest_api/actions/create-contact/create-contact.mjs(1 hunks)components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-event/create-event.mjs(1 hunks)components/salesforce_rest_api/actions/create-lead/create-lead.mjs(1 hunks)components/salesforce_rest_api/actions/create-note/create-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/create-record/create-record.mjs(1 hunks)components/salesforce_rest_api/actions/create-task/create-task.mjs(1 hunks)components/salesforce_rest_api/actions/create-user/create-user.mjs(1 hunks)components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/delete-record/delete-record.mjs(1 hunks)components/salesforce_rest_api/actions/find-records/find-records.mjs(1 hunks)components/salesforce_rest_api/actions/get-case/get-case.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs(1 hunks)components/salesforce_rest_api/actions/get-user/get-user.mjs(1 hunks)components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs(1 hunks)components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs(1 hunks)components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs(1 hunks)components/salesforce_rest_api/actions/search-string/search-string.mjs(1 hunks)components/salesforce_rest_api/actions/send-email/send-email.mjs(1 hunks)components/salesforce_rest_api/actions/soql-search/soql-search.mjs(1 hunks)components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs(1 hunks)components/salesforce_rest_api/actions/update-account/update-account.mjs(1 hunks)components/salesforce_rest_api/actions/update-contact/update-contact.mjs(1 hunks)components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs(1 hunks)components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/update-record/update-record.mjs(1 hunks)components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs(1 hunks)components/salesforce_rest_api/package.json(1 hunks)components/salesforce_rest_api/salesforce_rest_api.app.mjs(1 hunks)components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs(1 hunks)components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs(1 hunks)
✅ Files skipped from review due to trivial changes (46)
- components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs
- components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs
- components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs
- components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs
- components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs
- components/salesforce_rest_api/actions/create-user/create-user.mjs
- components/salesforce_rest_api/actions/create-account/create-account.mjs
- components/salesforce_rest_api/actions/create-note/create-note.mjs
- components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs
- components/salesforce_rest_api/actions/create-task/create-task.mjs
- components/salesforce_rest_api/actions/update-record/update-record.mjs
- components/salesforce_rest_api/actions/create-contact/create-contact.mjs
- components/salesforce_rest_api/actions/update-account/update-account.mjs
- components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs
- components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs
- components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs
- components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs
- components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs
- components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs
- components/salesforce_rest_api/actions/update-contact/update-contact.mjs
- components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs
- components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs
- components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs
- components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs
- components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs
- components/salesforce_rest_api/actions/get-case/get-case.mjs
- components/salesforce_rest_api/actions/soql-search/soql-search.mjs
- components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs
- components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs
- components/salesforce_rest_api/actions/search-string/search-string.mjs
- components/salesforce_rest_api/actions/get-user/get-user.mjs
- components/salesforce_rest_api/actions/delete-record/delete-record.mjs
- components/salesforce_rest_api/actions/create-case/create-case.mjs
- components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs
- components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs
- components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs
- components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs
- components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs
- components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs
- components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs
- components/salesforce_rest_api/actions/create-record/create-record.mjs
- components/salesforce_rest_api/actions/create-lead/create-lead.mjs
- components/salesforce_rest_api/actions/create-event/create-event.mjs
- components/salesforce_rest_api/actions/send-email/send-email.mjs
- components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs
- components/salesforce_rest_api/actions/find-records/find-records.mjs
🚧 Files skipped from review as they are similar to previous changes (5)
- components/salesforce_rest_api/package.json
- components/salesforce_rest_api/actions/common/knowledge.mjs
- components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs
- components/salesforce_rest_api/actions/get-knowledge-data-category-details/get-knowledge-data-category-details.mjs
- components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs
🧰 Additional context used
🧬 Code graph analysis (1)
components/salesforce_rest_api/salesforce_rest_api.app.mjs (1)
components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs (1)
items(84-102)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Publish TypeScript components
- GitHub Check: Verify TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (4)
components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs (1)
21-21: Version bump only — OKNo functional changes. Version aligns with the PR’s patch bump pattern.
components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs (1)
10-10: Version bump only — OKNo behavior change in the source.
components/salesforce_rest_api/salesforce_rest_api.app.mjs (2)
369-374: Knowledge articles endpoint wrapper — OKThin wrapper over _makeRequest looks consistent with existing app methods.
375-380: Data category groups endpoint wrapper — OKMatches the endpoint shape and existing conventions.
7cf97b5 to
c2dd086
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
components/salesforce_rest_api/actions/find-records/find-records.mjs (1)
64-64: Fix typo in summary string ("Sucessfully" → "Successfully").- $.export("$summary", `Sucessfully retrieved ${records.length} records`); + $.export("$summary", `Successfully retrieved ${records.length} records`);components/salesforce_rest_api/actions/create-event/create-event.mjs (1)
66-68: Fix typo in summary strings across Salesforce REST API actionsReplace
SucessfullyorSucccessfullywithSuccessfullyin the following files:
- components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs (line 20)
- components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs (line 35)
- components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs (line 29)
- components/salesforce_rest_api/actions/get-user/get-user.mjs (line 31)
- components/salesforce_rest_api/actions/find-records/find-records.mjs (line 64)
- components/salesforce_rest_api/actions/create-task/create-task.mjs (line 62)
- components/salesforce_rest_api/actions/create-event/create-event.mjs (line 66)
- components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs (line 20)
- components/salesforce_rest_api/actions/search-string/search-string.mjs (line 52)
🧹 Nitpick comments (5)
components/salesforce_rest_api/actions/find-records/find-records.mjs (3)
50-57: Normalize and validate inputs to avoid empty tokens, malformed IDs, and accidental SOQL issues.
Trim/clean arrays, default fields when empty, and validate Salesforce IDs (15–18 alphanum). This also prevents a WHERE IN ('') case.- if (typeof recordIds === "string") recordIds = recordIds.split(","); - if (typeof fieldsToObtain === "string") fieldsToObtain = fieldsToObtain.split(","); - - let query = `SELECT ${fieldsToObtain.join(", ")} FROM ${sobjectType}`; + if (typeof recordIds === "string") recordIds = recordIds.split(","); + if (typeof fieldsToObtain === "string") fieldsToObtain = fieldsToObtain.split(","); + // Normalize inputs + fieldsToObtain = fieldsToObtain?.map((f) => f.trim()).filter(Boolean); + const fields = (fieldsToObtain?.length ? fieldsToObtain : ["Id"]).join(", "); + recordIds = recordIds?.map((id) => id.trim()).filter(Boolean); + // Allow only valid 15/18-char alphanumeric IDs; de-dupe + const validIds = recordIds + ? [...new Set(recordIds.filter((id) => /^[A-Za-z0-9]{15,18}$/.test(id)))] + : undefined; + let query = `SELECT ${fields} FROM ${sobjectType}`; - if (recordIds?.length) { - query += ` WHERE Id IN ('${recordIds.join("','")}')`; + if (validIds?.length) { + query += ` WHERE Id IN ('${validIds.join("','")}')`; }Also applies to: 53-53
53-57: Optional: guard against missing fieldsToObtain upstream.
If the prop can be unset, the refactor above defaults to "Id", but consider marking the prop required to fail fast in UI.
44-66: Optional: consider SOQL safety-by-construction.
If available in the app, prefer helper builders (e.g., a SOQL builder) over manual string concat for defense-in-depth.components/salesforce_rest_api/actions/common/knowledge.mjs (2)
12-17: Optional: validate language format.
If feasible, validatelanguageas BCP‑47 (e.g., en-US) or document accepted values.
5-6: Props alias mismatch: standardize tosalesforce
common/batch-operation.mjs and common/knowledge.mjs useapp, and convert-soap-xml-to-json.mjs usessalesforce_rest_api, while most actions expect asalesforceprop. Rename these imports and props tosalesforcefor consistency.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (57)
components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/common/knowledge.mjs(1 hunks)components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs(1 hunks)components/salesforce_rest_api/actions/create-account/create-account.mjs(1 hunks)components/salesforce_rest_api/actions/create-accounts-batch/create-accounts-batch.mjs(1 hunks)components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs(1 hunks)components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/create-case/create-case.mjs(1 hunks)components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs(1 hunks)components/salesforce_rest_api/actions/create-contact/create-contact.mjs(1 hunks)components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-event/create-event.mjs(1 hunks)components/salesforce_rest_api/actions/create-lead/create-lead.mjs(1 hunks)components/salesforce_rest_api/actions/create-note/create-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-opportunities-batch/create-opportunities-batch.mjs(1 hunks)components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/create-record/create-record.mjs(1 hunks)components/salesforce_rest_api/actions/create-task/create-task.mjs(1 hunks)components/salesforce_rest_api/actions/create-user/create-user.mjs(1 hunks)components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/delete-record/delete-record.mjs(1 hunks)components/salesforce_rest_api/actions/find-records/find-records.mjs(1 hunks)components/salesforce_rest_api/actions/get-case/get-case.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs(1 hunks)components/salesforce_rest_api/actions/get-user/get-user.mjs(1 hunks)components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs(1 hunks)components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs(1 hunks)components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs(1 hunks)components/salesforce_rest_api/actions/search-string/search-string.mjs(1 hunks)components/salesforce_rest_api/actions/send-email/send-email.mjs(1 hunks)components/salesforce_rest_api/actions/soql-search/soql-search.mjs(1 hunks)components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs(1 hunks)components/salesforce_rest_api/actions/update-account/update-account.mjs(1 hunks)components/salesforce_rest_api/actions/update-accounts-batch/update-accounts-batch.mjs(1 hunks)components/salesforce_rest_api/actions/update-contact/update-contact.mjs(1 hunks)components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs(1 hunks)components/salesforce_rest_api/actions/update-opportunities-batch/update-opportunities-batch.mjs(1 hunks)components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/update-record/update-record.mjs(1 hunks)components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs(1 hunks)components/salesforce_rest_api/package.json(1 hunks)components/salesforce_rest_api/salesforce_rest_api.app.mjs(1 hunks)components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs(1 hunks)components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs(1 hunks)
✅ Files skipped from review due to trivial changes (13)
- components/salesforce_rest_api/actions/create-accounts-batch/create-accounts-batch.mjs
- components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs
- components/salesforce_rest_api/actions/create-opportunities-batch/create-opportunities-batch.mjs
- components/salesforce_rest_api/actions/update-accounts-batch/update-accounts-batch.mjs
- components/salesforce_rest_api/actions/soql-search/soql-search.mjs
- components/salesforce_rest_api/actions/send-email/send-email.mjs
- components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs
- components/salesforce_rest_api/actions/create-task/create-task.mjs
- components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs
- components/salesforce_rest_api/actions/create-lead/create-lead.mjs
- components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs
- components/salesforce_rest_api/package.json
- components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs
🚧 Files skipped from review as they are similar to previous changes (40)
- components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs
- components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs
- components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs
- components/salesforce_rest_api/actions/create-record/create-record.mjs
- components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs
- components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs
- components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs
- components/salesforce_rest_api/actions/search-string/search-string.mjs
- components/salesforce_rest_api/salesforce_rest_api.app.mjs
- components/salesforce_rest_api/actions/update-record/update-record.mjs
- components/salesforce_rest_api/actions/create-account/create-account.mjs
- components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs
- components/salesforce_rest_api/actions/get-user/get-user.mjs
- components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs
- components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs
- components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs
- components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs
- components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs
- components/salesforce_rest_api/actions/create-note/create-note.mjs
- components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs
- components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs
- components/salesforce_rest_api/actions/create-case/create-case.mjs
- components/salesforce_rest_api/actions/create-user/create-user.mjs
- components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs
- components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs
- components/salesforce_rest_api/actions/update-contact/update-contact.mjs
- components/salesforce_rest_api/actions/get-case/get-case.mjs
- components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs
- components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs
- components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs
- components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs
- components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs
- components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs
- components/salesforce_rest_api/actions/delete-record/delete-record.mjs
- components/salesforce_rest_api/actions/update-account/update-account.mjs
- components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs
- components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs
- components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs
- components/salesforce_rest_api/actions/create-contact/create-contact.mjs
- components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Lint Code Base
- GitHub Check: Publish TypeScript components
- GitHub Check: Verify TypeScript components
🔇 Additional comments (3)
components/salesforce_rest_api/actions/find-records/find-records.mjs (1)
8-8: Version bump only: LGTM.components/salesforce_rest_api/actions/update-opportunities-batch/update-opportunities-batch.mjs (1)
8-8: Version bump only: LGTM.components/salesforce_rest_api/actions/create-event/create-event.mjs (1)
12-12: Version bump only: LGTM.
c2dd086 to
36e0a28
Compare
|
/approve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs (2)
38-45: MakeescapeHtml4resilient to null/undefinedDefault the param and coerce to string to avoid runtime errors if
Contentis missing or non-string.- escapeHtml4(unsafe) { - return unsafe + escapeHtml4(unsafe = "") { + return String(unsafe) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """) .replace(/'/g, "'"); },
62-64: Be explicit about UTF-8 when base64-encodingMinor clarity/readability win and guards against future defaults changing.
- Content: Buffer.from(escapeHtml4(Content)).toString("base64"), + Content: Buffer.from(escapeHtml4(Content), "utf8").toString("base64"),
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (57)
components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/common/knowledge.mjs(1 hunks)components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs(1 hunks)components/salesforce_rest_api/actions/create-account/create-account.mjs(1 hunks)components/salesforce_rest_api/actions/create-accounts-batch/create-accounts-batch.mjs(1 hunks)components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs(1 hunks)components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs(1 hunks)components/salesforce_rest_api/actions/create-case/create-case.mjs(1 hunks)components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs(1 hunks)components/salesforce_rest_api/actions/create-contact/create-contact.mjs(1 hunks)components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-event/create-event.mjs(1 hunks)components/salesforce_rest_api/actions/create-lead/create-lead.mjs(1 hunks)components/salesforce_rest_api/actions/create-note/create-note.mjs(1 hunks)components/salesforce_rest_api/actions/create-opportunities-batch/create-opportunities-batch.mjs(1 hunks)components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/create-record/create-record.mjs(1 hunks)components/salesforce_rest_api/actions/create-task/create-task.mjs(1 hunks)components/salesforce_rest_api/actions/create-user/create-user.mjs(1 hunks)components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/delete-record/delete-record.mjs(1 hunks)components/salesforce_rest_api/actions/find-records/find-records.mjs(1 hunks)components/salesforce_rest_api/actions/get-case/get-case.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs(1 hunks)components/salesforce_rest_api/actions/get-user/get-user.mjs(1 hunks)components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs(1 hunks)components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs(1 hunks)components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs(1 hunks)components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs(1 hunks)components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs(1 hunks)components/salesforce_rest_api/actions/search-string/search-string.mjs(1 hunks)components/salesforce_rest_api/actions/send-email/send-email.mjs(1 hunks)components/salesforce_rest_api/actions/soql-search/soql-search.mjs(1 hunks)components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs(1 hunks)components/salesforce_rest_api/actions/update-account/update-account.mjs(1 hunks)components/salesforce_rest_api/actions/update-accounts-batch/update-accounts-batch.mjs(1 hunks)components/salesforce_rest_api/actions/update-contact/update-contact.mjs(1 hunks)components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs(1 hunks)components/salesforce_rest_api/actions/update-opportunities-batch/update-opportunities-batch.mjs(1 hunks)components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs(1 hunks)components/salesforce_rest_api/actions/update-record/update-record.mjs(1 hunks)components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs(1 hunks)components/salesforce_rest_api/package.json(1 hunks)components/salesforce_rest_api/salesforce_rest_api.app.mjs(1 hunks)components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs(1 hunks)components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs(1 hunks)components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs(1 hunks)components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs(1 hunks)
✅ Files skipped from review due to trivial changes (9)
- components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs
- components/salesforce_rest_api/actions/delete-record/delete-record.mjs
- components/salesforce_rest_api/actions/create-lead/create-lead.mjs
- components/salesforce_rest_api/actions/create-event/create-event.mjs
- components/salesforce_rest_api/actions/send-email/send-email.mjs
- components/salesforce_rest_api/sources/new-case-instant/new-case-instant.mjs
- components/salesforce_rest_api/sources/record-deleted-instant/record-deleted-instant.mjs
- components/salesforce_rest_api/actions/list-email-templates/list-email-templates.mjs
- components/salesforce_rest_api/actions/create-user/create-user.mjs
🚧 Files skipped from review as they are similar to previous changes (47)
- components/salesforce_rest_api/actions/get-case/get-case.mjs
- components/salesforce_rest_api/actions/update-account/update-account.mjs
- components/salesforce_rest_api/actions/create-account/create-account.mjs
- components/salesforce_rest_api/actions/common/knowledge.mjs
- components/salesforce_rest_api/actions/insert-blob-data/insert-blob-data.mjs
- components/salesforce_rest_api/actions/update-record/update-record.mjs
- components/salesforce_rest_api/actions/list-knowledge-articles/list-knowledge-articles.mjs
- components/salesforce_rest_api/sources/new-record-instant/new-record-instant.mjs
- components/salesforce_rest_api/actions/create-opportunities-batch/create-opportunities-batch.mjs
- components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs
- components/salesforce_rest_api/actions/update-email-template/update-email-template.mjs
- components/salesforce_rest_api/actions/sosl-search/sosl-search.mjs
- components/salesforce_rest_api/actions/create-record/create-record.mjs
- components/salesforce_rest_api/actions/list-case-comments/list-case-comments.mjs
- components/salesforce_rest_api/actions/create-task/create-task.mjs
- components/salesforce_rest_api/actions/add-contact-to-campaign/add-contact-to-campaign.mjs
- components/salesforce_rest_api/sources/new-outbound-message/new-outbound-message.mjs
- components/salesforce_rest_api/actions/soql-search/soql-search.mjs
- components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs
- components/salesforce_rest_api/actions/convert-soap-xml-to-json/convert-soap-xml-to-json.mjs
- components/salesforce_rest_api/sources/new-knowledge-article-instant/new-knowledge-article-instant.mjs
- components/salesforce_rest_api/actions/post-feed-to-chatter/post-feed-to-chatter.mjs
- components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs
- components/salesforce_rest_api/actions/update-contact/update-contact.mjs
- components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs
- components/salesforce_rest_api/sources/case-updated-instant/case-updated-instant.mjs
- components/salesforce_rest_api/sources/knowledge-article-updated-instant/knowledge-article-updated-instant.mjs
- components/salesforce_rest_api/actions/delete-opportunity/delete-opportunity.mjs
- components/salesforce_rest_api/package.json
- components/salesforce_rest_api/actions/search-string/search-string.mjs
- components/salesforce_rest_api/actions/list-email-messages/list-email-messages.mjs
- components/salesforce_rest_api/actions/update-opportunities-batch/update-opportunities-batch.mjs
- components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs
- components/salesforce_rest_api/actions/get-user/get-user.mjs
- components/salesforce_rest_api/sources/email-template-updated-instant/email-template-updated-instant.mjs
- components/salesforce_rest_api/actions/create-accounts-batch/create-accounts-batch.mjs
- components/salesforce_rest_api/actions/find-records/find-records.mjs
- components/salesforce_rest_api/actions/create-contact/create-contact.mjs
- components/salesforce_rest_api/salesforce_rest_api.app.mjs
- components/salesforce_rest_api/actions/update-accounts-batch/update-accounts-batch.mjs
- components/salesforce_rest_api/actions/create-case/create-case.mjs
- components/salesforce_rest_api/sources/new-email-template-instant/new-email-template-instant.mjs
- components/salesforce_rest_api/actions/get-knowledge-data-category-groups/get-knowledge-data-category-groups.mjs
- components/salesforce_rest_api/actions/create-note/create-note.mjs
- components/salesforce_rest_api/sources/record-updated-instant/record-updated-instant.mjs
- components/salesforce_rest_api/actions/get-knowledge-articles/get-knowledge-articles.mjs
- components/salesforce_rest_api/actions/add-lead-to-campaign/add-lead-to-campaign.mjs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Publish TypeScript components
- GitHub Check: Verify TypeScript components
- GitHub Check: Lint Code Base
- GitHub Check: pnpm publish
🔇 Additional comments (2)
components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs (2)
30-30: Version bump to 0.0.3 — LGTMNo functional changes detected here.
75-83: Confirm correct ID forContentDocumentLink.ContentDocumentIdPlease verify that
contentNoteResponse.idis the expected ContentDocument Id for notes in your org/API version. If the API returns a distinctContentDocumentIdfield in the response, prefer that.
WHY
#18027
Summary by CodeRabbit