Upgrades the agent connectors docs#455
Conversation
…eview/mcp-auth-methods
…h methods; MCP Auth methods
* feat: adds teh banner to invite users to join the community * feat: enhance homepage styling and add community banner * feat: add community banner component and update banner content across documentation --------- Co-authored-by: Akshay Parihar <akshay.parihar@scalekit.com>
Removed mention of ID tokens from claims field explanation.
MCP Topologies
Amended parameter name in docs to match SDK Parameter.
Updating docs for federated auth with sdk support
* Clarify documentation on custom claims in ID tokens by specifying that claims are only included in ID tokens, not access tokens. Adjusted wording for consistency and clarity in the interceptor scenarios guide. * Fix Steps component formatting in interceptor-scenarios.mdx - Remove ### headers from step titles to comply with Steps component requirements - Use **bold** formatting instead of headers for step titles - This fixes the build error where Steps component expected single ordered list * Use #### headers instead of bold formatting in Steps component - Testing shows that #### headers work with Starlight's Steps component - This provides better visual hierarchy while maintaining compatibility - ### headers cause build errors but #### headers are acceptable
* chore: start manage sessions remoately * fix: update session management examples to use correct SDK methods and improve clarity - Changed references from `scalekit.sessions` to `scalekit.session` in JavaScript, Python, Go, and Java examples. - Updated filtering parameters to use consistent casing for status and improved date handling in Python and Go examples. - Enhanced console output messages for revoked sessions to be more user-friendly. * feat: remove the mention of passwordless
* chore: start manage sessions remoately * fix: update session management examples to use correct SDK methods and improve clarity - Changed references from `scalekit.sessions` to `scalekit.session` in JavaScript, Python, Go, and Java examples. - Updated filtering parameters to use consistent casing for status and improved date handling in Python and Go examples. - Enhanced console output messages for revoked sessions to be more user-friendly. * feat: remove the mention of passwordless * fix: update SDK version in installation instructions - Changed Gradle and Maven dependency versions from `2.0.1` to `2.0.6` for the Scalekit SDK. * feat: add section for limiting user sign-ups in organization - Introduced a new section in the manage organization guide detailing how to limit the number of users in an organization. - Added an image to illustrate the process of updating organization settings for user limits. * feat: add user limits image and update references in user management settings - Added a new image for user limits in the user management settings documentation. - Updated the manage organization guide to clarify how to limit the number of users in an organization. * feat: enhance Scalekit API documentation with user management settings and environment details - Updated the Scalekit API specification to include new user management settings for organizations, allowing for maximum user limits. - Added detailed descriptions for development and production environments, including API URLs and subdomain variables. - Improved formatting and organization of the Swagger JSON file for better readability and consistency. - Clarified user limits in the manage organization guide, including a note on how limits affect user invitations. * fix: clarify user provisioning limits in manage organization guide - Updated the manage organization guide to specify that new user provisioning is blocked until organization limits are increased. - Removed redundant instructions and improved clarity by consolidating steps related to configuring user limits.
- Reformatted the Swagger JSON file to enhance clarity by aligning array elements and object properties. - Updated tags for various API endpoints to use consistent array formatting. - Added a backup of the previous Swagger JSON file for reference. - Ensured all descriptions and examples are properly structured for better documentation quality.
…he MCP Inspector, as Dynamic Client Registration is the preferred approach (#313) * Enhance FastMCP integration guide with additional context and clarification - Updated the introduction to clarify the purpose of the guide and the steps involved in securing a FastMCP server with Scalekit. - Added an Aside component to inform users about leaving the Inspector's Authentication fields empty to avoid errors with dynamic client registration. * Update src/content/docs/mcp/integrations/fastmcp.mdx
* Refactor webhook documentation structure and add new event types - Simplified sidebar configuration for webhooks by removing unnecessary nesting. - Updated the order of the 'Directory events' section in the sidebar. - Added new documentation files for 'Organization events', 'Permission events', 'Role events', 'Enterprise SSO events', and 'User events', detailing their respective webhook functionalities and JSON structures. - Ensured all new sections include comprehensive descriptions and structured content for clarity. * Add new webhook events and update documentation structure - Introduced new webhook events: `organization.directory_created` and `organization.directory_deleted` with placeholders for future documentation. - Updated section headings for consistency, changing 'Directory User Events' to 'Directory user events' and 'Directory Group Events' to 'Directory group events'. - Standardized the heading format for SSO and user authentication events for improved clarity. * Update webhook event documentation with new structures and examples - Revised JSON structures for organization, permission, role, and user events to reflect updated identifiers and attributes. - Enhanced descriptions for each event type, ensuring clarity on the purpose and data fields. - Removed deprecated fields and added new ones, such as `external_id` and `settings.features`, to improve accuracy and usability. - Standardized timestamps and organization details across all event types for consistency. * Remove outdated overviewTitle from organization events documentation * Enhance user event webhook documentation for clarity - Updated descriptions for `user.signup`, `user.login`, `user.logout`, `user.organization_membership_created`, `user.organization_membership_updated`, and `user.organization_membership_deleted` to provide clearer context on the events. - Ensured consistency in terminology and improved the understanding of each event's purpose and implications.
e464b31 to
2c47fda
Compare
…lekit-inc/developer-docs into super-upgrade-connectors-mds
There was a problem hiding this comment.
Actionable comments posted: 27
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/content/docs/reference/agent-connectors/outlook.mdx (1)
84-84:⚠️ Potential issue | 🟡 MinorUse the agent-connector provider icon CDN host consistently.
This page uses
cdn.scalekit.com, while agent connector references standardize onhttps://cdn.scalekit.cloud/sk-connect/assets/provider-icons/.Suggested fix
- <img src="https://cdn.scalekit.com/sk-connect/assets/provider-icons/outlook.svg" width="64" height="64" alt="Outlook logo" /> + <img src="https://cdn.scalekit.cloud/sk-connect/assets/provider-icons/outlook.svg" width="64" height="64" alt="Outlook logo" />Based on learnings: "For agent connector documentation files under src/content/docs/reference/agent-connectors/, prefer CDN URLs (https://cdn.scalekit.cloud/sk-connect/assets/provider-icons/) for connector logo images."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/outlook.mdx` at line 84, The Outlook connector doc uses the wrong CDN host for its provider icon; update the img src in src/content/docs/reference/agent-connectors/outlook.mdx (the <img ... src="https://cdn.scalekit.com/sk-connect/assets/provider-icons/outlook.svg" ... /> element) to the standardized CDN base by replacing the URL with "https://cdn.scalekit.cloud/sk-connect/assets/provider-icons/outlook.svg" so it matches other agent-connector documentation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/sync-agent-connectors.js`:
- Around line 284-288: The code silently swallows fs.readdirSync errors and
returns an empty object which later causes index.ts to be regenerated empty;
change the try/catch around fs.readdirSync(templatesDir) to rethrow the caught
error or call process.exit(1) with a clear error log instead of returning {};
specifically update the block that sets files (the fs.readdirSync(templatesDir)
try/catch) to log the error and fail fast, and apply the same fix to the similar
try/catch at the later location (the block around lines handling template
discovery near the index write) so template discovery failures abort rather than
returning {}.
In `@src/components/templates/agent-connectors/_setup-airtable.mdx`:
- Around line 8-40: The Steps component block uses incorrect Markdown headings
and indentation; update each step heading inside the <Steps> component from "###
Title" to the required numbered format "1. ## Title" (for all steps including
the auth redirects, client credentials, and add credentials steps) and ensure
every line of each step body uses exactly three spaces of indentation (no tabs,
no other counts) so the Steps component renders per the MDX guidelines.
In `@src/components/templates/agent-connectors/_setup-asana.mdx`:
- Line 8: Update the external markdown links in _setup-asana.mdx (e.g., the
"Scalekit dashboard" link and the other external links referenced on lines 12,
28, 33, and 37) to include target="_blank" and rel="noopener" attributes so they
open in a new tab securely; locate the anchor/MDX link elements in the document
(search for the visible link texts like "Scalekit dashboard" and the
Asana-related external URLs) and add those attributes to each external <a> / MDX
link element.
In `@src/components/templates/agent-connectors/_setup-github.mdx`:
- Around line 9-46: The Steps component block has continuation lines indented
with 4 spaces instead of the required 3; update the content inside the <Steps>
element (including list items, paragraphs and the <Aside/> block) to use exactly
3-space indentation for all continuation lines so the parser accepts it — locate
the <Steps> block around the top of
src/components/templates/agent-connectors/_setup-github.mdx and change every
continuation line (e.g., the numbered list items, list subpoints, and image
lines) from 4 to 3 spaces.
In `@src/components/templates/agent-connectors/_setup-gong.mdx`:
- Around line 7-44: In the Steps block, replace any tertiary headings (`###`)
with second-level headings (`##`) so each step starts with "1. ## ..." and
ensure all continuation lines (bulleted lists, the <Aside> block, and image tags
like useOwnCredentialsImg and addCredentialsImg) are indented with exactly three
spaces (not four or six); update the Step entries that currently use `###` (the
"Set up auth redirects", "Get client credentials", and "Add credentials in
Scalekit" steps) and fix indentation for their nested content accordingly so the
Steps component follows the required "1. ## Title" + 3-space continuation
formatting.
In `@src/components/templates/agent-connectors/_setup-google-ads.mdx`:
- Around line 13-50: The <Steps> block in the Google Ads setup doc has
inconsistent indentation (lines under the headings like "### Set up auth
redirects", "### Enable Google Ads API", "### Get client credentials", and "###
Add credentials in Scalekit") using 4+ spaces; normalize every step-body line
inside the <Steps> element to exactly 3 space characters of indentation so the
block matches other working <Steps> examples and maintains consistent
formatting.
In `@src/components/templates/agent-connectors/_setup-google-docs.mdx`:
- Line 15: Update all external anchor tags that link out (e.g., the "Scalekit
dashboard" link and the other external links referenced at the indicated
locations) to include target="_blank" and rel="noopener" attributes; locate the
anchor elements in _setup-google-docs.mdx (the Markdown/MDX link syntax or
explicit <a> tags) and add target="_blank" rel="noopener" to each external link
so they open in a new tab safely.
In `@src/components/templates/agent-connectors/_setup-google-forms.mdx`:
- Line 15: Update all external anchor tags in the Google Forms setup template to
include target="_blank" and rel="noopener" attributes; specifically modify the
link with text "Scalekit dashboard" and all other external links referenced
around the template (lines with the Google Forms create connection instructions
and the other occurrences noted) so each external <a> tag opens in a new tab and
uses rel="noopener" for security/UX consistency.
In `@src/components/templates/agent-connectors/_setup-google-meets.mdx`:
- Around line 12-49: The issue is inconsistent indentation inside the Steps
component: update the content within the <Steps> block so every continuation
line uses exactly 3 leading spaces (not 4+), e.g. align list items and
paragraphs under the opening <Steps> tag to use three spaces before continuation
text; locate the <Steps> component in this template (the block wrapping the
numbered steps and images) and normalize all internal continuation lines to
start with exactly 3 spaces.
In `@src/components/templates/agent-connectors/_setup-google-sheets.mdx`:
- Around line 13-50: Inside the <Steps> component replace each numbered "###"
heading (currently "1. ### Set up auth redirects", "2. ### Enable Google Sheets
API", "3. ### Get client credentials", "4. ### Add credentials in Scalekit")
with the Steps-required format "1. ## Title" (i.e., use "1. ##" for each step
title) and re-indent all lines that belong to each step so they have exactly 3
leading spaces; update the blocks under the symbols "Set up auth redirects",
"Enable Google Sheets API", "Get client credentials", and "Add credentials in
Scalekit" to follow that 3-space indentation rule.
In `@src/components/templates/agent-connectors/_setup-googlecalendar.mdx`:
- Around line 12-53: The Steps block uses inconsistent indentation (4+ spaces)
for continuation lines including the nested Aside; update the markup inside the
<Steps> block so every continuation line and nested block (e.g., the <Aside>
content and all list items under "Set up auth redirects", "Enable Google
Calendar API", "Get client credentials", and "Add credentials in Scalekit") uses
exactly 3 leading spaces for continuation indentation, ensuring uniform spacing
throughout the <Steps> section.
In `@src/components/templates/agent-connectors/_setup-googleslides.mdx`:
- Around line 12-50: Inside the Steps component replace each step heading that
currently starts with "1. ###" to "1. ##" and normalize all nested content
indentation to exactly 3 spaces (e.g., the "Set up auth redirects", "Enable
Google Slides API", "Get client credentials", and "Add credentials in Scalekit"
blocks inside <Steps>); ensure every bullet, paragraph and image line under
those steps uses 3-space indentation so the Steps parsing rules accept the
component.
In `@src/components/templates/agent-connectors/_setup-microsoft-teams.mdx`:
- Around line 6-43: The Steps component requires each step header to use the
numbered format "1. ## <Title>" and all step content to be indented with exactly
3 spaces; update the three step headings "Register an Azure app", "Create an
Azure bot", and "Add credentials in Scalekit" (currently written as "### ...")
to "1. ## ..." and normalize every line of the corresponding step bodies
(including list items, sub-bullets, and images) to use exactly 3-space
indentation; ensure the Steps wrapper and its content keep the same ordering and
text but adjust only the heading markers and indentation.
In `@src/components/templates/agent-connectors/_setup-microsoft-word.mdx`:
- Around line 5-33: Change the opening <Steps> block to remove the blank line
after the tag, convert the three section headings "Set up auth redirects", "Get
your client credentials", and "Add credentials in Scalekit" from "###" to "##",
and normalize all continuation indentation within the Steps block to exactly 3
spaces for bullets and sub-bullets (replace existing 4-space and 6-space indents
with 3 spaces) so the list items under those headings render per the repository
standard.
In `@src/components/templates/agent-connectors/_setup-onedrive.mdx`:
- Around line 6-35: The Steps component in _setup-onedrive.mdx uses 4-space
indentation for the step bodies; update the markup under the Steps block so
every line of each step (starting from the "Set up auth redirects" step and the
following steps like "Get your client credentials" and "Add credentials in
Scalekit") uses exactly 3 spaces of indentation, and ensure each step follows
the numbered format "1. ## Title" as required by the Steps component parser;
adjust all bullet and sub-bullet lines (redirect URI, portal.azure.com
instructions, Certificates & secrets, etc.) to the 3-space indentation to avoid
parser edge cases.
In `@src/components/templates/agent-connectors/_setup-onenote.mdx`:
- Around line 6-35: The Steps block in
src/components/templates/agent-connectors/_setup-onenote.mdx uses 4-space
indentation for step content (lines under the <Steps> block, e.g., the numbered
step headers like "1. ### Set up auth redirects" and their nested bullets) but
must use exactly 3 spaces; update the indentation for the entire Steps content
so each step header and every nested bullet/paragraph is indented with exactly
three spaces, preserving the numbered "1. ### Title" format and the existing
text/links and images (no other text changes).
In `@src/components/templates/agent-connectors/_setup-sharepoint.mdx`:
- Line 8: The external anchor elements for "Scalekit dashboard" and the other
outbound URLs in the SharePoint setup MDX (the links at the lines referencing
the redirect URI and other external resources) must include security attributes;
update each external <a> tag to add target="_blank" and rel="noopener" so they
open in a new tab safely, ensuring all four external links mentioned (the link
with text "Scalekit dashboard" and the three other external URLs referenced on
lines 12, 28, and 33) are modified accordingly.
In `@src/components/templates/agent-connectors/_setup-snowflake.mdx`:
- Around line 8-52: The Steps component must use a single continuous ordered
list with each step title formatted as "1. ## Title" and all step content
indented with exactly 3 spaces; update the headings currently using "1. ### ..."
to "1. ## ..." and normalize indentation for every line under the Steps block
(including the redirect URI paragraph, SQL blocks, and bullet lists such as the
Get client credentials and Add credentials sections) to use exactly 3 spaces,
ensuring the ordered list remains continuous and no extra numbering styles or
inconsistent indentation remain in the _setup-snowflake.mdx file.
In `@src/content/docs/reference/agent-connectors/confluence.mdx`:
- Around line 74-76: Remove the duplicate named import of Badge, Tabs, and
TabItem from `@astrojs/starlight/components` and consolidate a single import for
the needed symbols; also remove unused component imports Card, CardGrid, Steps,
Aside, Code and the Accordion/AccordionItem import from
accessible-astro-components (or import them only if actually used). Update the
import statements so there is one clean import from
'@astrojs/starlight/components' that only exports the used identifiers (e.g.,
Badge, Tabs, TabItem) and delete the unused imports Accordion and AccordionItem
unless referenced elsewhere.
In `@src/content/docs/reference/agent-connectors/googlecalendar.mdx`:
- Line 93: The import name for the Google Calendar setup component is
mismatched: change the imported symbol SetupGooglecalendarSection to match the
exported/used component SetupGoogleCalendarSection so the import and the JSX
usage (<SetupGoogleCalendarSection />) refer to the same identifier; update the
import statement to import SetupGoogleCalendarSection (capital 'C') wherever
SetupGooglecalendarSection is currently imported.
- Around line 74-77: Remove the duplicate Starlight import that redeclares
Badge, Tabs, and TabItem (the second import that repeats those symbols) so there
are no duplicate bindings, and also remove the unused import
SetupGooglecalendarSection since it is never referenced; update the remaining
import(s) to only import each symbol once (retain the first import line that
includes Card, CardGrid, Tabs, TabItem, Badge, Steps, Aside, Code and delete the
extra line importing Badge, Tabs, TabItem and the unused
SetupGooglecalendarSection import).
In `@src/content/docs/reference/agent-connectors/onedrive.mdx`:
- Line 76: The import uses the wrong symbol name: change the imported identifier
from SetupOnedriveSection to the correctly exported SetupOneDriveSection so it
matches the component's export and its usage; update the import statement that
currently reads "SetupOnedriveSection" to "SetupOneDriveSection" wherever it
appears (e.g., the import in this file) to fix the symbol mismatch.
- Around line 74-77: Remove the duplicate import line that re-exports Badge,
Tabs, and TabItem (the second import of '@astrojs/starlight/components') and
clean up unused imports from the first line: remove Card, CardGrid, Steps,
Aside, and Code if they are not referenced; keep only the actually used symbols
such as Badge, Tabs, TabItem and any others used (e.g., SetupOnedriveSection,
Accordion, AccordionItem) so that there are no redeclarations or unused imports
in the file.
In `@src/content/docs/reference/agent-connectors/onenote.mdx`:
- Line 93: The import uses the wrong casing for the component: update the import
that references SetupOnenoteSection to use the exact exported name
SetupOneNoteSection so it matches the component export and the JSX usage
<SetupOneNoteSection />; locate the import statement for SetupOnenoteSection and
change its identifier to SetupOneNoteSection to resolve the compile-time
mismatch.
- Around line 74-77: Remove the duplicate Starlight import and unused component
imports: keep only the single import that brings in Badge, Tabs, and TabItem
from '@astrojs/starlight/components' (remove the second duplicate import) and
delete unused imports Card, CardGrid, Steps, Aside, Code, Accordion, and
AccordionItem; ensure SetupOnenoteSection remains imported from
'@components/templates' and that only Badge, Tabs, and TabItem are imported from
'@astrojs/starlight/components'.
In `@src/content/docs/reference/agent-connectors/salesforce.mdx`:
- Around line 155-171: Wrap the happy-path calls to
actions.get_authorization_link and actions.request in try/except blocks to
surface and log/print exceptions (handle failures to generate the auth link and
failures from the request call), and add a short inline security note above the
authorization step warning that binding the provided identifier to a user
account can cause account spoofing or session-mixup if identifiers are not
validated/CSRF-protected; reference actions.get_authorization_link,
actions.request, connection_name, and identifier so the reader knows where to
add the error handlers and the security comment.
- Around line 74-77: There are duplicate named imports of Badge, Tabs, and
TabItem from '@astrojs/starlight/components' causing an MDX parse error; fix it
by merging the two starlight imports into a single import that lists Card,
CardGrid, Tabs, TabItem, Badge, Steps, Aside, and Code together, keep the
Accordion and AccordionItem import from 'accessible-astro-components' as-is, and
ensure SetupSalesforceSection remains imported from '@components/templates'.
---
Outside diff comments:
In `@src/content/docs/reference/agent-connectors/outlook.mdx`:
- Line 84: The Outlook connector doc uses the wrong CDN host for its provider
icon; update the img src in
src/content/docs/reference/agent-connectors/outlook.mdx (the <img ...
src="https://cdn.scalekit.com/sk-connect/assets/provider-icons/outlook.svg" ...
/> element) to the standardized CDN base by replacing the URL with
"https://cdn.scalekit.cloud/sk-connect/assets/provider-icons/outlook.svg" so it
matches other agent-connector documentation.
---
Duplicate comments:
In @.cursor/.gitignore:
- Line 1: Add the Cursor IDE debug log pattern to the existing
.cursor/.gitignore by appending a line for debug.log (or a pattern like
debug.log or *.log if preferred) alongside the existing plans/ entry so
editor-generated debug.log files are not tracked; update the .cursor/.gitignore
to include "debug.log" (or "debug.log\n" as a new line) next to the existing
"plans/" entry.
In `@src/components/templates/agent-connectors/_setup-airtable.mdx`:
- Line 14: The first screenshot uses empty alt text in the markdown image token
``;
replace the empty alt text with a concise, descriptive string (e.g., ``)
so assistive technologies receive meaningful context.
In `@src/components/templates/agent-connectors/_setup-asana.mdx`:
- Line 10: The image tag with path
"@/assets/docs/_setup-asana/redirecturi-copy-asana.png" uses an empty alt
attribute; update the markdown in
src/components/templates/agent-connectors/_setup-asana.mdx to replace the empty
alt with a concise, descriptive alt text (e.g., "Asana app OAuth redirect URI
highlighted in the Asana developer settings screenshot") so screen readers can
convey the image purpose—locate the image reference containing
redirecturi-copy-asana.png and set an appropriate descriptive alt string.
In `@src/components/templates/agent-connectors/_setup-bigquery.mdx`:
- Line 21: The image markdown on line containing
''
lacks alt text; replace the empty alt with a short, descriptive string (e.g.,
"BigQuery OAuth consent screen showing redirect URI setup") so the markdown
becomes  and meets the guideline that all images must
have descriptive alt text.
- Around line 13-60: The Steps component markup has inconsistent
continuation-line indentation: change any 4-space indented lines inside the
<Steps> block (the numbered steps and their bullet lines) to use exactly 3
spaces for continuation lines so the MDX parser and the Steps component render
correctly; locate the <Steps> section (the "Configure redirect URL" through "Add
credentials in Scalekit" numbered content) and adjust all nested lines (bullet
items and paragraph continuations) from 4 spaces to 3 spaces, then test MDX
locally to confirm parsing.
In `@src/components/templates/agent-connectors/_setup-clickup.mdx`:
- Line 12: Update the external markdown links so they open safely in a new tab:
locate the inline link with the text "Scalekit dashboard" (the Markdown/MDX link
to https://app.scalekit.com) and add target="_blank" rel="noopener" attributes
to the anchor, and apply the same change to the other external link around the
second occurrence referenced in the review; ensure the MDX output uses <a
href="..."> tags or the MDX link syntax that includes target="_blank" and
rel="noopener" so both links include these attributes for security and
consistency.
- Line 17: The image tag
"" has empty alt
text; replace it with a concise, descriptive alt attribute (for example:
"Screenshot showing where to copy the ClickUp Redirect URI") so the Markdown
becomes something like ""; ensure the alt
text clearly describes the image content and purpose for accessibility.
In `@src/components/templates/agent-connectors/_setup-confluence.mdx`:
- Line 16: Update the Markdown image at the string
"" to include a
descriptive alt text (e.g., "Confluence: copy redirect URI dialog") and switch
the asset path to the repository's standard convention used elsewhere (replace
the "@/..." prefix with the consistent "/assets/..." style used in this file) so
the image has meaningful alt text and a uniform source URL.
In `@src/components/templates/agent-connectors/_setup-dropbox.mdx`:
- Around line 14-16: Update the Aside component text to complete the missing
target section reference: locate the Aside element containing "By default, a
connection using Scalekit's credentials will be created. If you are testing, go
directly to the section." and replace the blank with the proper section name
(e.g., "Testing" or the actual heading used in this document) so the sentence
reads naturally (for example, "If you are testing, go directly to the Testing
section."); ensure the edited string is concise and follows the project's
plain-language style.
In `@src/components/templates/agent-connectors/_setup-gmail.mdx`:
- Around line 13-58: The Steps block in the agent connector doc uses wrong
heading level and incorrect indentation: update the Steps component so each list
item uses "1. ##" for the item heading (not "###") and make the continuation
lines for each step indented exactly 3 spaces to form a single continuous
ordered list; adjust all occurrences in the block (the Steps component and its
internal items) to follow the repository guideline that continuation content
must be indented by exactly 3 spaces and headings inside Steps use "##".
- Line 24: Replace empty markdown image alt text for all images in
_setup-gmail.mdx (e.g. the entry referencing
"@/assets/docs/agent-connectors/gmail/use-own-credentials-redirect-uri.png" and
the other images flagged at the same file) with concise, descriptive alt strings
that convey the screenshot content and purpose (for example: "Gmail OAuth
redirect URI settings screenshot"). Update each `` to include meaningful
alt text while keeping the existing image paths and surrounding markdown
unchanged.
In `@src/components/templates/agent-connectors/_setup-google-ads.mdx`:
- Line 19: The images in the MDX file use empty alt text (e.g., the image at
"@/assets/docs/agent-connectors/google_ads/use-own-credentials-redirect-uri.png"
and the other three images referenced on lines 23, 27, and 47); update each
markdown image tag from  to include concise descriptive alt text that
explains the screenshot (for example describe the page or UI element shown),
ensuring all four images in
src/components/templates/agent-connectors/_setup-google-ads.mdx have meaningful
alt text.
In `@src/components/templates/agent-connectors/_setup-google-docs.mdx`:
- Line 19: The embedded screenshots in _setup-google-docs.mdx currently use
empty alt text (e.g. instances of
""
and the other three image tags); update each image markdown to include concise,
descriptive alt text reflecting the screenshot content (for example "OAuth
Redirect URI screenshot showing Google Cloud Console redirect URI field"),
replacing the empty brackets for all occurrences so each of the four images has
non-empty, meaningful alt text.
In `@src/components/templates/agent-connectors/_setup-google-drive.mdx`:
- Around line 19-47: Replace the four empty alt attributes on the images
referenced (use-own-credentials-redirect-uri.png, oauth-web-app.png,
add-redirect-uri.png, add-credentials.png) with concise, meaningful alt text
that describes the image purpose (e.g., "Google Cloud Console OAuth redirect URI
entry form", "OAuth web application selection in Google Cloud Console",
"Authorized redirect URI added in Google Cloud Console", "Agent Auth Connections
page showing fields to enter Client ID and Secret"); update the markdown lines
in _setup-google-drive.mdx to use  for each image
and ensure the alt text conveys the screenshot's intent and context rather than
redundant phrases like "screenshot".
- Around line 13-50: The Steps component uses a single continuous ordered list
format; update each step header from the current "1. ### ..." to the required
"1. ## ..." for the four step titles ("Set up auth redirects", "Enable Google
Drive API", "Get client credentials", "Add credentials in Scalekit") and ensure
every line that belongs to a step (all bullet lines and images) is indented with
exactly 3 spaces so the list remains continuous; verify the entire block uses
the numbered "1. ## Title" pattern and consistent 3-space indentation
throughout.
In `@src/components/templates/agent-connectors/_setup-google-forms.mdx`:
- Line 19: Replace the empty alt text for the Markdown images in
_setup-google-forms.mdx (the image usages like

and the other three image lines referenced) with concise, descriptive alt
strings describing each screenshot (e.g., "Google Cloud Console OAuth consent
screen settings", "OAuth client credentials redirect URI configuration", etc.),
ensuring each image's alt attribute accurately conveys the content and purpose
for accessibility and documentation clarity.
In `@src/components/templates/agent-connectors/_setup-google-meets.mdx`:
- Line 18: Replace the empty alt attributes for the screenshots in
_setup-google-meets.mdx (the image tags showing
use-own-credentials-redirect-uri.png and the other screenshots at the mentioned
locations) with concise descriptive alt text (e.g., "Google Cloud console OAuth
redirect URI screenshot") and add a one-line caption or context sentence
immediately before or after each image explaining what the screenshot
illustrates; update all occurrences referenced (lines with
use-own-credentials-redirect-uri.png and the other images at the noted
locations) so each img has a non-empty alt and a brief contextual sentence.
In `@src/components/templates/agent-connectors/_setup-google-sheets.mdx`:
- Around line 19-47: The four Markdown image tags with empty alt text must be
updated to include descriptive alt text; replace each  with a
descriptive label (e.g., ) for the images use-own-credentials-redirect-uri.png,
oauth-web-app.png, add-redirect-uri.png, and add-credentials.png so they convey
the screenshot purpose and improve accessibility while keeping the same image
paths.
In `@src/components/templates/agent-connectors/_setup-googlecalendar.mdx`:
- Line 22: Update the four markdown image tags that currently use empty alt text
(the lines with
 to include concise, descriptive alt
text describing each screenshot's content and purpose (e.g., "Google Cloud
Console OAuth redirect URI entry screenshot", "Google Calendar API enabled in
Cloud Console", etc.); locate the image tags in _setup-googlecalendar.mdx and
replace the empty brackets [] with meaningful alt strings for each corresponding
screenshot.
In `@src/components/templates/agent-connectors/_setup-googleslides.mdx`:
- Line 19: Replace each empty-markdown-image token "" in the
_setup-googleslides.mdx file with meaningful, descriptive alt text that conveys
the screenshot content for screen readers (e.g., "Google Cloud Console OAuth
consent screen showing redirect URI field" or similar); update all occurrences
of the empty image syntax so each image tag includes concise, context-specific
alt text describing what the screenshot displays.
In `@src/components/templates/agent-connectors/_setup-hubspot.mdx`:
- Line 10: Replace the empty alt text for the first HubSpot screenshot by
editing the markdown image tag
 and provide a concise,
descriptive alt string (for example: ) so the image
is accessible and follows the "no empty alt" guideline.
- Around line 8-39: The Steps content uses inconsistent indentation and header
formatting; update the <Steps> block so every line inside it (including step
headers like "Get client credentials" and "Add credentials in Scalekit" and the
nested <Aside>) uses exactly three-space indentation, and ensure each step
header follows the required numbered pattern "1. ## Title" (e.g., change "2. ###
Get client credentials" to "1. ## Get client credentials"); adjust the nested
<Aside> so its opening tag, content and closing tag are also indented by exactly
three spaces to avoid rendering issues.
In `@src/components/templates/agent-connectors/_setup-intercom.mdx`:
- Around line 8-39: Inside the <Steps> block the ordered list continuation lines
are indented with 4+ spaces which breaks the MDX parser; change all continuation
lines inside the <Steps> element (the numbered list lines, the redirect URI
paragraph, the Intercom Developer Hub paragraphs and the image tag block) so
they use exactly 3 leading spaces for continuation/wrapped content and ensure
the ordered list remains a single continuous list (adjust any nested bullets or
wrapped lines to follow the 3-space rule).
- Line 16: The Markdown image on the page uses an empty alt attribute
(); update that
token to include a descriptive alt string that conveys the image purpose (e.g.,
"Intercom Redirect URI configuration screenshot" or similar) so assistive
technologies can understand the screenshot; locate the image reference shown and
replace the empty alt with a concise, meaningful description.
In `@src/components/templates/agent-connectors/_setup-jira.mdx`:
- Around line 8-43: The Steps block using the <Steps> component is misformatted:
it uses "1. ###" headings and 4-space indentation which breaks the parser;
update the block to use the repository's required numbered Steps format "1. ##
Title" and change all step content lines to use exactly 3-space indentation
(including lines with text, lists, and image tags referencing
useOwnCredentialsImg, addRedirectUriImg, and addCredentialsImg) so the <Steps>
component parses correctly.
In `@src/components/templates/agent-connectors/_setup-linear.mdx`:
- Line 10: The screenshot markup uses an empty alt attribute; update the
Markdown image token ""
to include meaningful alt text describing the image (e.g., replace the empty
brackets with a concise description of the Linear setup/redirect screenshot) so
the image is accessible to screen readers and follows the documentation
guidelines.
In `@src/components/templates/agent-connectors/_setup-monday.mdx`:
- Line 16: The image currently uses empty alt text (), add a concise,
descriptive alt attribute for screen readers by replacing the empty brackets
with a meaningful description of the screenshot (e.g., "Monday.com OAuth
redirect setup dialog showing redirect URI and authorization button" or a
similarly accurate summary). Locate the Markdown image token in the
agent-connectors/_setup-monday.mdx content (the line containing
"") and update the alt
text to accurately reflect the screenshot contents.
In `@src/components/templates/agent-connectors/_setup-notion.mdx`:
- Line 12: Replace the empty-alt image tag
`` with a Markdown image that
includes a concise, descriptive alt text (e.g., "Notion integration screenshot
showing auth flow") and use the same stable asset path pattern used elsewhere in
the file; update the markup for the image reference (the
`` occurrence) so it contains the
descriptive alt text and the consistent path format.
In `@src/components/templates/agent-connectors/_setup-onedrive.mdx`:
- Line 10: The image markdown uses empty alt text
(); replace the empty
alt with a concise, descriptive alt string that explains the image contents (for
example: "OneDrive app registration Redirect URI settings showing the OAuth
redirect URL") so the markdown image line includes meaningful alt text rather
than the empty `` form.
- Line 8: Update the external anchor tags in the MDX template so they open
safely in a new tab: add target="_blank" and rel="noopener" to the external
links referenced by the anchor text "Scalekit dashboard" (line with OneDrive
setup) and the other external links at lines 12, 28 and 33; locate the anchors
in src/components/templates/agent-connectors/_setup-onedrive.mdx and modify each
<a> element for those link texts to include target="_blank" and rel="noopener".
In `@src/components/templates/agent-connectors/_setup-onenote.mdx`:
- Line 10: The image for the redirect URI currently uses empty alt text; update
the markdown image syntax for "@/assets/docs/_setup-onenote/redirecturi.png" to
include a concise, descriptive alt string (e.g., "OneNote app redirect URI shown
in Azure portal") so the markdown image tag in _setup-onenote.mdx is not empty
and meets accessibility guidelines.
In `@src/components/templates/agent-connectors/_setup-outlook.mdx`:
- Line 10: The image markdown currently uses empty alt text
(); update it to include a
descriptive alt string that explains the screenshot (e.g., "Screenshot showing
where to copy the Redirect URI in Outlook app registration") so the asset in the
_setup-outlook.mdx template has accessible and discoverable alt text; locate the
exact image reference and replace the empty alt brackets with the descriptive
text.
- Around line 6-35: Update the Steps component to use the required "1. ##"
heading format and exact 3-space continuation indentation: make each step
heading (the titles "Set up auth redirects", "Get your client credentials", "Add
credentials in Scalekit") start with "1. ## <title>" so the Steps component sees
a single continuous ordered list, remove any extra list breaks, and ensure every
continuation line under those headings is indented with exactly three spaces;
verify the Steps wrapper remains a single list block (no stray breaks or
differing indentation) so the renderer produces consistent output.
In `@src/components/templates/agent-connectors/_setup-salesforce.mdx`:
- Around line 5-45: The Steps block uses the wrong heading level and incorrect
indentation; change every step header from the current "1. ###" pattern to "1.
##" and reformat all continuation/content lines (including nested blocks like
the Aside, images, bullet lists, and code-like lines such as the redirect URI)
to use exactly 3 spaces of indentation so the Steps component becomes a single
continuous ordered list per the repo standard; update all occurrences within the
Steps component (look for the Steps element and the Aside block) to match the
required "1. ## Title" and 3-space continuation indentation.
- Line 18: The image markdown
`` is missing alt text;
update it to include a concise, descriptive alt string (e.g., "Salesforce app
settings — Copy Redirect URI button" or equivalent) so the image becomes `` to meet
accessibility guidelines and the project rule that all images must have
descriptive alt text.
In `@src/components/templates/agent-connectors/_setup-servicenow.mdx`:
- Around line 9-48: Update the Steps component entries in _setup-servicenow.mdx
so each step heading uses the required numbered format "1. ## <Title>" (replace
"1. ### Set up auth redirects", "1. ### Get client credentials", and "1. ### Add
credentials in Scalekit" with "1. ## ..."), and re-indent every continuation
line under those step blocks to exactly 3 spaces (ensure all bullet lines,
paragraphs, images, and Asides under the steps follow the 3-space indentation
rule).
In `@src/components/templates/agent-connectors/_setup-sharepoint.mdx`:
- Line 10: The SharePoint setup screenshot uses empty alt text
(``); replace the empty
alt with a concise, descriptive string that conveys the image content (e.g.,
"SharePoint app registration Redirect URI field showing copied URL") so the
Markdown/MDX image markup includes accessible alt text for screen readers and
compliance with the project's image accessibility rule.
In `@src/components/templates/agent-connectors/_setup-slack.mdx`:
- Around line 8-38: The Steps component block in _setup-slack.mdx has
continuation lines indented with 4+ spaces which breaks MDX Steps parsing;
locate the <Steps> usage and adjust all lines that belong to a step's body (the
continuation paragraphs, lists, images, and gif captions under each step) to use
exactly 3 leading spaces for continuation indentation instead of 4 or more,
ensuring each step's content is consistently indented by 3 spaces so the Steps
component parses correctly.
- Line 10: The first Markdown image token
"" has an empty alt
attribute; replace it with a concise, descriptive alt text that explains the
screenshot (e.g., what UI is shown and its purpose) so the image tag becomes
something like ; update the alt to
reflect the Slack setup/authorization dialog visible in that screenshot.
In `@src/components/templates/agent-connectors/_setup-zoom.mdx`:
- Around line 8-39: The Steps block uses a custom <Steps> component but its
steps are not in the required "1. ## Title" numbered heading format with exactly
3-space indentation; update the <Steps> content so each step begins with "1. ##
<Title>" (e.g., "1. ## Set up auth redirects", "1. ## Get client credentials",
"1. ## Add credentials in Scalekit") and ensure every subsequent line inside
each step is indented with exactly three spaces (including lists, images, and
paragraphs) so the component renders consistently; locate the <Steps> block in
_setup-zoom.mdx and normalize all three steps to that exact format.
- Line 13: Replace the empty-alt hardcoded markdown image with the imported
asset variable and a descriptive alt string: swap the current
"" usage with the imported
useOwnCredentialsImg (e.g., use the MDX-friendly form that references the
variable or an <img src={useOwnCredentialsImg} alt="step showing how to enter
your Zoom credentials in the app" />), ensuring the image source uses
useOwnCredentialsImg and the alt text describes the screenshot.
In `@src/content/docs/reference/agent-connectors/google_ads.mdx`:
- Around line 74-77: Remove the duplicate starlight imports by consolidating the
two import blocks that import Badge, Tabs, and TabItem into a single import from
'@astrojs/starlight/components' (keep Card, CardGrid, Steps, Aside, Code only if
they are actually used in the MDX). Specifically, merge the two imports that
reference Badge, Tabs, and TabItem so each symbol is imported exactly once and
remove the redundant import line; also drop Code from the consolidated import if
the <Code> component is not present in the MDX content.
In `@src/content/docs/reference/agent-connectors/hubspot.mdx`:
- Around line 74-77: The file has duplicate imports of Badge, Tabs, and TabItem
causing identifier collisions; remove the redundant import statement and
consolidate all components into a single import from
'@astrojs/starlight/components' (e.g., ensure Card, CardGrid, Tabs, TabItem,
Badge, Steps, Aside, Code are imported only once) and keep the other imports
(Accordion, AccordionItem, SetupHubspotSection) unchanged so the MDX build no
longer errors on duplicate identifiers.
In `@src/content/docs/reference/agent-connectors/jira.mdx`:
- Around line 74-77: There are duplicate starlight imports: Badge, Tabs and
TabItem are imported twice; fix by consolidating the two "import { ... } from
'@astrojs/starlight/components'" blocks into a single import that lists each
symbol only once (e.g., Card, CardGrid, Tabs, TabItem, Badge, Steps, Aside, Code
as needed), keep the Accordion/AccordionItem import from
'accessible-astro-components' and remove Code from the consolidated import if
the <Code> component isn't actually used in the MDX; ensure the final import
includes only unique, used symbols (Badge, Tabs, TabItem, Card, CardGrid, Steps,
Aside, Code) and delete the duplicate import lines.
In `@src/content/docs/reference/agent-connectors/linear.mdx`:
- Around line 74-77: There are duplicate imports of Badge, Tabs, and TabItem
from '@astrojs/starlight/components' causing ESM/MDX parse errors; remove the
redundant import and consolidate all Starlight symbols into a single import
statement (e.g., keep the import that already includes Card, CardGrid, Tabs,
TabItem, Badge, Steps, Aside, Code) or merge the two into one so Badge, Tabs,
and TabItem are only imported once; update the import lines near the top
(references: Badge, Tabs, TabItem, Card, CardGrid, Steps, Aside, Code,
Accordion, AccordionItem, SetupLinearSection) to eliminate the duplicate
binding.
In `@src/content/docs/reference/agent-connectors/outlook.mdx`:
- Around line 74-77: There are duplicate imports of Badge, Tabs, and TabItem
causing MDX parse errors; edit the import blocks so each symbol is imported only
once from '@astrojs/starlight/components' (e.g., consolidate into a single
import that includes Card, CardGrid, Tabs, TabItem, Badge, Steps, Aside, Code)
and remove the redundant "import { Badge, Tabs, TabItem } ..." line; also only
keep Code in that consolidated import if the <Code> component is actually used
in the MDX, and ensure Accordion and AccordionItem and SetupOutlookSection
remain imported as they are referenced.
In `@src/content/docs/reference/agent-connectors/zendesk.mdx`:
- Around line 162-188: Add inline security rationale comments in the auth/proxy
flow around the actions.get_authorization_link and actions.request calls: state
the threat (e.g., leaking authorization links, replaying tokens, or exposing
user identifiers), explain why the current pattern (prompting user to authorize
via link_response.link and using connection_name/identifier to scope requests)
is required to mitigate those threats, and note what can go wrong if omitted
(e.g., unauthorized access, token theft, or misuse of proxy). Place concise
comments above the first try/except (get_authorization_link) and above the
request() call so readers see the threat, mitigation rationale, and the
potential impact of removing the pattern.
ℹ️ Review info
Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: abc85182-483e-4a3a-a495-cc6438ea1f06
⛔ Files ignored due to path filters (23)
nanobanana-output/saas_dashboard_ui_screenshot_sho.pngis excluded by!**/*.pngnanobanana-output/saas_dashboard_ui_screenshot_sho_1.pngis excluded by!**/*.pngpnpm-lock.yamlis excluded by!**/pnpm-lock.yamlsrc/assets/docs/_setup-airtable/copy-redirecturi-airtable.pngis excluded by!**/*.pngsrc/assets/docs/_setup-asana/redirecturi-copy-asana.pngis excluded by!**/*.pngsrc/assets/docs/_setup-clickup/copy-clickup-redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-confluence/copy-redirect-uri-confl.pngis excluded by!**/*.pngsrc/assets/docs/_setup-googlecalendar/copy-redirecturi-calendar.pngis excluded by!**/*.pngsrc/assets/docs/_setup-hubspot/2026-03-03-18-18-21.pngis excluded by!**/*.pngsrc/assets/docs/_setup-intercom/intercom-copy-redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-intercom/intercom-redirect-uri.pngis excluded by!**/*.pngsrc/assets/docs/_setup-linear/linear-redirect-copy.pngis excluded by!**/*.pngsrc/assets/docs/_setup-monday/monday-redirect-copy.pngis excluded by!**/*.pngsrc/assets/docs/_setup-notion/notion-ss.pngis excluded by!**/*.pngsrc/assets/docs/_setup-onedrive/onedrive-redirect.pngis excluded by!**/*.pngsrc/assets/docs/_setup-onenote/redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-outlook/copy-redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-salesforce/copy-redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-sharepoint/copy-redirecturi.pngis excluded by!**/*.pngsrc/assets/docs/_setup-slack/2026-03-03-18-46-21.pngis excluded by!**/*.pngsrc/assets/docs/_setup-zoom/2026-03-03-18-47-24.pngis excluded by!**/*.pngsrc/assets/docs/agent-connectors/notion/add-credentials.pngis excluded by!**/*.pngsrc/assets/docs/agent-connectors/notion/use-own-credentials-redirect-uri.pngis excluded by!**/*.png
📒 Files selected for processing (63)
.cursor/.gitignoreastro.config.mjsproject-docs/SYNC_AGENT_CONNECTORS.mdscripts/sync-agent-connectors.jssrc/components/templates/agent-connectors/_setup-airtable.mdxsrc/components/templates/agent-connectors/_setup-asana.mdxsrc/components/templates/agent-connectors/_setup-bigquery.mdxsrc/components/templates/agent-connectors/_setup-clickup.mdxsrc/components/templates/agent-connectors/_setup-confluence.mdxsrc/components/templates/agent-connectors/_setup-dropbox.mdxsrc/components/templates/agent-connectors/_setup-github.mdxsrc/components/templates/agent-connectors/_setup-gmail.mdxsrc/components/templates/agent-connectors/_setup-gong.mdxsrc/components/templates/agent-connectors/_setup-google-ads.mdxsrc/components/templates/agent-connectors/_setup-google-docs.mdxsrc/components/templates/agent-connectors/_setup-google-drive.mdxsrc/components/templates/agent-connectors/_setup-google-forms.mdxsrc/components/templates/agent-connectors/_setup-google-meets.mdxsrc/components/templates/agent-connectors/_setup-google-sheets.mdxsrc/components/templates/agent-connectors/_setup-googlecalendar.mdxsrc/components/templates/agent-connectors/_setup-googleslides.mdxsrc/components/templates/agent-connectors/_setup-hubspot.mdxsrc/components/templates/agent-connectors/_setup-intercom.mdxsrc/components/templates/agent-connectors/_setup-jira.mdxsrc/components/templates/agent-connectors/_setup-linear.mdxsrc/components/templates/agent-connectors/_setup-microsoft-excel.mdxsrc/components/templates/agent-connectors/_setup-microsoft-teams.mdxsrc/components/templates/agent-connectors/_setup-microsoft-word.mdxsrc/components/templates/agent-connectors/_setup-monday.mdxsrc/components/templates/agent-connectors/_setup-notion.mdxsrc/components/templates/agent-connectors/_setup-onedrive.mdxsrc/components/templates/agent-connectors/_setup-onenote.mdxsrc/components/templates/agent-connectors/_setup-outlook.mdxsrc/components/templates/agent-connectors/_setup-salesforce.mdxsrc/components/templates/agent-connectors/_setup-servicenow.mdxsrc/components/templates/agent-connectors/_setup-sharepoint.mdxsrc/components/templates/agent-connectors/_setup-slack.mdxsrc/components/templates/agent-connectors/_setup-snowflake.mdxsrc/components/templates/agent-connectors/_setup-zendesk.mdxsrc/components/templates/agent-connectors/_setup-zoom.mdxsrc/components/templates/agent-connectors/index.tssrc/content/docs/reference/agent-connectors/confluence.mdxsrc/content/docs/reference/agent-connectors/github.mdxsrc/content/docs/reference/agent-connectors/gmail.mdxsrc/content/docs/reference/agent-connectors/google_ads.mdxsrc/content/docs/reference/agent-connectors/googlecalendar.mdxsrc/content/docs/reference/agent-connectors/googledocs.mdxsrc/content/docs/reference/agent-connectors/googledrive.mdxsrc/content/docs/reference/agent-connectors/googleforms.mdxsrc/content/docs/reference/agent-connectors/googlemeet.mdxsrc/content/docs/reference/agent-connectors/googlesheets.mdxsrc/content/docs/reference/agent-connectors/googleslides.mdxsrc/content/docs/reference/agent-connectors/hubspot.mdxsrc/content/docs/reference/agent-connectors/jira.mdxsrc/content/docs/reference/agent-connectors/linear.mdxsrc/content/docs/reference/agent-connectors/onedrive.mdxsrc/content/docs/reference/agent-connectors/onenote.mdxsrc/content/docs/reference/agent-connectors/outlook.mdxsrc/content/docs/reference/agent-connectors/salesforce.mdxsrc/content/docs/reference/agent-connectors/zendesk.mdxsrc/styles/custom.csssrc/styles/theme-priority.csstailwind.config.mjs
💤 Files with no reviewable changes (1)
- tailwind.config.mjs
There was a problem hiding this comment.
Actionable comments posted: 8
♻️ Duplicate comments (7)
src/content/docs/reference/agent-connectors/onedrive.mdx (1)
136-170:⚠️ Potential issue | 🟠 MajorAdd explicit failure handling and stronger security rationale in the Python example
The snippet from Line 153 to Line 169 shows only the happy path. Add a
try/exceptpath and a security comment that explains the threat and impact if secrets are hard-coded.Proposed patch
<TabItem label="Python"> ```python import scalekit.client, os from dotenv import load_dotenv + # Security: load_dotenv() is for local development only. In production, use your secret manager. + # Security: Hard-coding API credentials can leak secrets and allow unauthorized API access. load_dotenv() @@ - # Authenticate the user - link_response = actions.get_authorization_link( - connection_name=connection_name, - identifier=identifier - ) - # present this link to your user for authorization, or click it yourself for testing - print("🔗 Authorize OneDrive:", link_response.link) - input("Press Enter after authorizing...") - - # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/v1.0/me/drive", - method="GET" - ) - print(result) + try: + # Authenticate the user + link_response = actions.get_authorization_link( + connection_name=connection_name, + identifier=identifier + ) + # present this link to your user for authorization, or click it yourself for testing + print("🔗 Authorize OneDrive:", link_response.link) + input("Press Enter after authorizing...") + + # Make a request via Scalekit proxy + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/v1.0/me/drive", + method="GET" + ) + print(result) + except Exception as exc: + print(f"OneDrive request failed: {exc}") ``` </TabItem>As per coding guidelines: "Always include error handling in code examples showing both success and error paths" and "Security comments MUST state the threat, why the pattern is required, and what can go wrong if omitted."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/onedrive.mdx` around lines 136 - 170, Add explicit error handling and a stronger security rationale: wrap the authorization + request sequence (the calls to actions.get_authorization_link and actions.request) in a try/except that prints or logs the exception (e.g., "OneDrive request failed: {exc}"), and add security comments next to load_dotenv() stating that load_dotenv is for local development only, why relying on env files or hard-coded credentials is dangerous (secrets can be leaked, enabling unauthorized API access), and recommend using a secret manager for production; update the Python example to show both success and failure paths without changing function names.src/content/docs/reference/agent-connectors/salesforce.mdx (1)
154-170:⚠️ Potential issue | 🟠 MajorAdd error handling and explicit security-risk context in the Python auth flow.
Line 154 onward still shows only happy-path calls. Add
try/exceptaround authorization-link generation and request execution, plus a security comment explaining identifier/account binding risk (and what can go wrong if validation/CSRF protections are omitted).Suggested update
- # Authenticate the user - link_response = actions.get_authorization_link( - connection_name=connection_name, - identifier=identifier - ) - # present this link to your user for authorization, or click it yourself for testing - print("🔗 Authorize Salesforce:", link_response.link) - input("Press Enter after authorizing...") + # Security: Verify `identifier` is bound to the authenticated app user and protect the OAuth callback with CSRF state. + # Without this, an attacker could bind the wrong Salesforce account to a user session. + try: + link_response = actions.get_authorization_link( + connection_name=connection_name, + identifier=identifier + ) + print("🔗 Authorize Salesforce:", link_response.link) + input("Press Enter after authorizing...") + except Exception as exc: + print(f"Failed to generate authorization link: {exc}") + raise - # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/services/data/v58.0/chatter/users/me", - method="GET" - ) - print(result) + # Make a request via Scalekit proxy + try: + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/services/data/v58.0/chatter/users/me", + method="GET" + ) + print(result) + except Exception as exc: + print(f"Salesforce request failed: {exc}") + raiseAs per coding guidelines: "Examples must show both success and error handling paths. Security implications must be explained for each implementation."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/salesforce.mdx` around lines 154 - 170, Wrap the happy-path calls to actions.get_authorization_link and actions.request in try/except blocks to catch and log exceptions (use the same connection_name and identifier variables in the handlers) and surface user-friendly error messages; ensure the except for get_authorization_link logs the exception before exiting or returning, and the except for actions.request logs the error and returns a safe failure response. Also add an explicit security comment near the flow warning that binding requests to identifier/account without validation or CSRF protections can allow account takeover or token misuse, and recommend validating the identifier, using state/nonces in the OAuth flow, and verifying the returned account matches the expected user.src/content/docs/reference/agent-connectors/outlook.mdx (1)
99-173:⚠️ Potential issue | 🟠 MajorAdd explicit error handling and a snippet title in the Python usage example.
The Python sample is still happy-path only and the code fence has no
title. Please includetry/exceptand atitleattribute.♻️ Proposed fix
- <TabItem label="Python"> - ```python + <TabItem label="Python"> + ```python title="examples/outlook.py" @@ - # Authenticate the user - link_response = actions.get_authorization_link( - connection_name=connection_name, - identifier=identifier - ) - # present this link to your user for authorization, or click it yourself for testing - print("🔗 Authorize Outlook:", link_response.link) - input("Press Enter after authorizing...") - - # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/v1.0/me/messages", - method="GET" - ) - print(result) + try: + # Authenticate the user + link_response = actions.get_authorization_link( + connection_name=connection_name, + identifier=identifier + ) + # present this link to your user for authorization, or click it yourself for testing + print("🔗 Authorize Outlook:", link_response.link) + input("Press Enter after authorizing...") + + # Make a request via Scalekit proxy + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/v1.0/me/messages", + method="GET" + ) + print("✅ Request succeeded") + print(result) + except Exception as err: + print(f"❌ Request failed: {err}") ``` </TabItem>As per coding guidelines: "Always include error handling in code examples showing both success and error paths" and "Code blocks MUST have a
title=attribute showing the file path."🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/outlook.mdx` around lines 99 - 173, The Python example is missing a code-fence title and error handling; add title="examples/outlook.py" to the triple-backtick fence and wrap the auth + request flow (calls to actions.get_authorization_link and actions.request) in a try/except that prints a success message on success and prints the exception on failure (e.g., "✅ Request succeeded" and "❌ Request failed: {err}").src/content/docs/reference/agent-connectors/jira.mdx (1)
136-170:⚠️ Potential issue | 🟠 MajorAdd explicit failure handling and a threat-focused security note in the Python sample
The snippet currently shows only the happy path. Add
try/exceptand a security comment that explains the threat and impact ifidentifier/authorization context is not validated before generating links and proxying requests.🛡️ Suggested patch
<TabItem label="Python"> ```python @@ - # Authenticate the user - link_response = actions.get_authorization_link( - connection_name=connection_name, - identifier=identifier - ) - # present this link to your user for authorization, or click it yourself for testing - print("🔗 Authorize Jira:", link_response.link) - input("Press Enter after authorizing...") - - # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/rest/api/3/myself", - method="GET" - ) - print(result) + try: + # Security: Verify `identifier` belongs to the signed-in user before link generation/request proxying. + # Without this check, you can accidentally link or access another user's Jira account. + link_response = actions.get_authorization_link( + connection_name=connection_name, + identifier=identifier + ) + print("🔗 Authorize Jira:", link_response.link) + input("Press Enter after authorizing...") + + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/rest/api/3/myself", + method="GET" + ) + print(result) + except Exception as err: + print(f"Jira request failed: {err}") ``` </TabItem>As per coding guidelines: “All code examples MUST include … success and error handling paths,” and “Security comments MUST state the threat, why the pattern is required, and what can go wrong if omitted.”
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/jira.mdx` around lines 136 - 170, Wrap the happy-path calls to actions.get_authorization_link and actions.request in a try/except block that prints or logs the caught exception (e.g., "Jira request failed: {err}") to provide an explicit error path; add a concise security comment before calling get_authorization_link explaining the threat (unauthorized linking/access if identifier is not validated), why you must verify the identifier belongs to the signed-in user, and the potential impact (accidental access to another user's Jira account or token leakage) if omitted; ensure the symbols referenced are actions.get_authorization_link, actions.request and the identifier parameter so reviewers can locate and update the Python sample.src/content/docs/reference/agent-connectors/onenote.mdx (2)
136-170:⚠️ Potential issue | 🟠 MajorAdd error-path handling and snippet metadata to the Python example.
At Line 137, the fenced code block lacks
title. At Line 153 onward, the sample only shows the success path. Addtry/exceptand a brief security note for credential/token handling.Proposed doc snippet update
- <TabItem label="Python"> - ```python + <TabItem label="Python"> + ```python title="examples/onenote_usage.py" import scalekit.client, os from dotenv import load_dotenv load_dotenv() @@ - # Authenticate the user - link_response = actions.get_authorization_link( - connection_name=connection_name, - identifier=identifier - ) - # present this link to your user for authorization, or click it yourself for testing - print("🔗 Authorize OneNote:", link_response.link) - input("Press Enter after authorizing...") - - # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/v1.0/me/onenote/notebooks", - method="GET" - ) - print(result) + try: + # Security: Keep API credentials and OAuth tokens in secure storage; never hard-code secrets. + link_response = actions.get_authorization_link( + connection_name=connection_name, + identifier=identifier + ) + print("🔗 Authorize OneNote:", link_response.link) + input("Press Enter after authorizing...") + + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/v1.0/me/onenote/notebooks", + method="GET" + ) + print(result) + except Exception as exc: + print(f"OneNote request failed: {exc}") ``` </TabItem>As per coding guidelines: “Code blocks MUST have a
title=attribute showing the file path,” “Show both success path AND error path in every code example,” and “Security-sensitive operations ... MUST include inline comments explaining the security implication.”🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/onenote.mdx` around lines 136 - 170, Add a title attribute to the Python code fence and update the example to include error-path handling and a security comment: modify the TabItem Python block (label="Python") to set the fenced code title (e.g., title="examples/onenote_usage.py"), wrap the authentication/request sequence (actions.get_authorization_link and actions.request) in a try/except that prints a clear error message (e.g., "OneNote request failed: {exc}"), and add an inline security comment before calling get_authorization_link/request noting to store API credentials and OAuth tokens securely and never hard-code secrets.
74-75:⚠️ Potential issue | 🟡 MinorPrune unused MDX component imports.
Line 74 and Line 75 import
Card,CardGrid,Steps,Aside,Code,Accordion, andAccordionItem, but none are used in this file. Please keep only the symbols actually referenced.Suggested cleanup
-import { Card, CardGrid, Tabs, TabItem, Badge, Steps, Aside, Code } from '@astrojs/starlight/components' -import { Accordion, AccordionItem } from 'accessible-astro-components' +import { Tabs, TabItem, Badge } from '@astrojs/starlight/components'🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/onenote.mdx` around lines 74 - 75, Remove the unused MDX component imports: delete Card, CardGrid, Steps, Aside, and Code from the first import and remove the entire Accordion/AccordionItem import if neither is used; keep only the actually referenced symbols (e.g., Tabs, TabItem, Badge) in the '@astrojs/starlight/components' import. Ensure there are no duplicate or leftover imports for Accordion/AccordionItem from 'accessible-astro-components'.src/content/docs/reference/agent-connectors/hubspot.mdx (1)
154-170:⚠️ Potential issue | 🟠 MajorAdd error-path handling and explicit security rationale in the Python sample.
The snippet currently demonstrates only the success path and does not explain the risk around mishandling the authorization link.
🛡️ Proposed update
- # Authenticate the user + # Security: Treat this authorization link as sensitive. If exposed, an attacker could connect the wrong HubSpot account. + # Present the link only to the intended signed-in user. + # Authenticate the user link_response = actions.get_authorization_link( connection_name=connection_name, identifier=identifier ) # present this link to your user for authorization, or click it yourself for testing print("🔗 Authorize HubSpot:", link_response.link) input("Press Enter after authorizing...") # Make a request via Scalekit proxy - result = actions.request( - connection_name=connection_name, - identifier=identifier, - path="/crm/v3/owners", - method="GET" - ) - print(result) + try: + result = actions.request( + connection_name=connection_name, + identifier=identifier, + path="/crm/v3/owners", + method="GET" + ) + print(result) + except Exception as exc: + print(f"HubSpot request failed: {exc}") + raiseAs per coding guidelines: "Always include error handling in code examples showing both success and error paths" and "Security comments MUST state the threat, why the pattern is required, and what can go wrong if omitted."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/reference/agent-connectors/hubspot.mdx` around lines 154 - 170, Update the Python sample to handle errors and include an explicit security rationale: wrap calls to actions.get_authorization_link and actions.request in try/except blocks (catch exceptions, log or print error details, and return/exit), check and validate responses (e.g., ensure link_response has .link and result indicates HTTP success/status code), add timeout/retry awareness for actions.request, and avoid printing the raw authorization link in production (explain the threat: leaking the link can allow token exchange by attackers and why failing to validate responses or catch exceptions can lead to unauthorized access or unhandled crashes). Reference the existing symbols: actions.get_authorization_link, link_response.link, connection_name, identifier, and actions.request when making these edits.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/content/docs/reference/agent-connectors/confluence.mdx`:
- Line 96: Change the usage lead-in sentence from third-person to second-person:
replace "Connect a user's Confluence account and make API calls on their behalf
— Scalekit handles OAuth and token management automatically." with wording that
addresses the reader directly (e.g., "Connect your Confluence account and make
API calls on your behalf — Scalekit handles OAuth and token management
automatically.") so the documentation uses "you/your" perspective consistently.
- Around line 153-169: Update the Python sample to handle errors and add a
security rationale: wrap calls to actions.get_authorization_link and
actions.request in try/except blocks (or check response.status/ok) to surface
and log failures rather than only printing the happy path, handle user aborts on
the input() wait, and validate the request response before printing; add an
inline security comment near the use of connection_name and identifier
explaining that identifier links user accounts and tokens must be treated as
sensitive (avoid logging tokens, limit scope, and validate ownership) so readers
understand the security implications.
- Around line 99-135: Remove the large commented Node.js sample block (the /*
Node.js - commented out ... */ section) from the MDX so only the supported
Python SDK examples remain; specifically delete the commented TabItem that
contains the ScalekitClient import and usage (references: ScalekitClient,
connectedAccounts, actions, getMagicLinkForConnectedAccount, actions.request) to
avoid drift and keep generated reference pages Python-only.
In `@src/content/docs/reference/agent-connectors/hubspot.mdx`:
- Around line 95-98: Replace the generic heading "## Usage" with an
outcome-focused, second-person heading (e.g., "Connect your HubSpot account and
call APIs") and rewrite the lead sentence under that heading to use
second-person phrasing and an outcome tone (for example: "Connect your HubSpot
account and make API calls on your users' behalf — Scalekit handles OAuth and
token management automatically"). Locate the heading token "## Usage" and the
current lead sentence in the hubspot.mdx content and update both to follow the
guidelines: outcome-oriented heading + "you/your" perspective.
In `@src/content/docs/reference/agent-connectors/jira.mdx`:
- Around line 99-135: Remove the commented-out Node.js example block so the
rendered Tabs only show the Python example: delete the entire JSX comment that
starts with {/* Node.js - commented out, uncomment when ready and the <TabItem
label="Node.js"> ... </TabItem> snippet (including the closing */} comment
marker) so only the <TabItem label="Python"> content remains; ensure no stray
comment markers or empty lines remain inside the Tabs component.
In `@src/content/docs/reference/agent-connectors/linear.mdx`:
- Around line 137-172: Add explicit error handling and a brief security comment
around the authorization + proxy call sequence: wrap the calls to
actions.get_authorization_link and actions.request (using connection_name and
identifier) in a try/except that prints a clear failure message (e.g., "Linear
request failed: {error}"), and include a one-line security note that the proxy
request is made on behalf of an authenticated, user-scoped connected account;
keep the existing print/input flow in the success path.
- Around line 99-136: Remove the large commented Node.js TabItem block (the
section starting with <TabItem label="Node.js"> and its TypeScript example using
ScalekitClient, connectedAccounts.getMagicLinkForConnectedAccount, and
actions.request) from the MDX file so only the active Python SDK examples
remain; delete the entire commented block including its fenced ```typescript```
example and surrounding comment markers to avoid dead content in the generated
reference page.
In `@src/content/docs/reference/agent-connectors/onenote.mdx`:
- Around line 98-135: Remove the commented-out Node.js TabItem block inside the
Tabs component (the large /* ... */ block that contains "Node.js - commented
out, uncomment when ready" and the TabItem label="Node.js") so the MDX only
contains the active Python TabItem; ensure you delete the opening "/*" and
closing "*/" comment markers and the entire TabItem with its fenced-code
example, leaving the Tabs component and the existing TabItem label="Python"
intact.
---
Duplicate comments:
In `@src/content/docs/reference/agent-connectors/hubspot.mdx`:
- Around line 154-170: Update the Python sample to handle errors and include an
explicit security rationale: wrap calls to actions.get_authorization_link and
actions.request in try/except blocks (catch exceptions, log or print error
details, and return/exit), check and validate responses (e.g., ensure
link_response has .link and result indicates HTTP success/status code), add
timeout/retry awareness for actions.request, and avoid printing the raw
authorization link in production (explain the threat: leaking the link can allow
token exchange by attackers and why failing to validate responses or catch
exceptions can lead to unauthorized access or unhandled crashes). Reference the
existing symbols: actions.get_authorization_link, link_response.link,
connection_name, identifier, and actions.request when making these edits.
In `@src/content/docs/reference/agent-connectors/jira.mdx`:
- Around line 136-170: Wrap the happy-path calls to
actions.get_authorization_link and actions.request in a try/except block that
prints or logs the caught exception (e.g., "Jira request failed: {err}") to
provide an explicit error path; add a concise security comment before calling
get_authorization_link explaining the threat (unauthorized linking/access if
identifier is not validated), why you must verify the identifier belongs to the
signed-in user, and the potential impact (accidental access to another user's
Jira account or token leakage) if omitted; ensure the symbols referenced are
actions.get_authorization_link, actions.request and the identifier parameter so
reviewers can locate and update the Python sample.
In `@src/content/docs/reference/agent-connectors/onedrive.mdx`:
- Around line 136-170: Add explicit error handling and a stronger security
rationale: wrap the authorization + request sequence (the calls to
actions.get_authorization_link and actions.request) in a try/except that prints
or logs the exception (e.g., "OneDrive request failed: {exc}"), and add security
comments next to load_dotenv() stating that load_dotenv is for local development
only, why relying on env files or hard-coded credentials is dangerous (secrets
can be leaked, enabling unauthorized API access), and recommend using a secret
manager for production; update the Python example to show both success and
failure paths without changing function names.
In `@src/content/docs/reference/agent-connectors/onenote.mdx`:
- Around line 136-170: Add a title attribute to the Python code fence and update
the example to include error-path handling and a security comment: modify the
TabItem Python block (label="Python") to set the fenced code title (e.g.,
title="examples/onenote_usage.py"), wrap the authentication/request sequence
(actions.get_authorization_link and actions.request) in a try/except that prints
a clear error message (e.g., "OneNote request failed: {exc}"), and add an inline
security comment before calling get_authorization_link/request noting to store
API credentials and OAuth tokens securely and never hard-code secrets.
- Around line 74-75: Remove the unused MDX component imports: delete Card,
CardGrid, Steps, Aside, and Code from the first import and remove the entire
Accordion/AccordionItem import if neither is used; keep only the actually
referenced symbols (e.g., Tabs, TabItem, Badge) in the
'@astrojs/starlight/components' import. Ensure there are no duplicate or
leftover imports for Accordion/AccordionItem from 'accessible-astro-components'.
In `@src/content/docs/reference/agent-connectors/outlook.mdx`:
- Around line 99-173: The Python example is missing a code-fence title and error
handling; add title="examples/outlook.py" to the triple-backtick fence and wrap
the auth + request flow (calls to actions.get_authorization_link and
actions.request) in a try/except that prints a success message on success and
prints the exception on failure (e.g., "✅ Request succeeded" and "❌ Request
failed: {err}").
In `@src/content/docs/reference/agent-connectors/salesforce.mdx`:
- Around line 154-170: Wrap the happy-path calls to
actions.get_authorization_link and actions.request in try/except blocks to catch
and log exceptions (use the same connection_name and identifier variables in the
handlers) and surface user-friendly error messages; ensure the except for
get_authorization_link logs the exception before exiting or returning, and the
except for actions.request logs the error and returns a safe failure response.
Also add an explicit security comment near the flow warning that binding
requests to identifier/account without validation or CSRF protections can allow
account takeover or token misuse, and recommend validating the identifier, using
state/nonces in the OAuth flow, and verifying the returned account matches the
expected user.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: aa43cf6d-9723-4132-b920-f16597f19e01
📒 Files selected for processing (10)
src/content/docs/reference/agent-connectors/confluence.mdxsrc/content/docs/reference/agent-connectors/google_ads.mdxsrc/content/docs/reference/agent-connectors/googlecalendar.mdxsrc/content/docs/reference/agent-connectors/hubspot.mdxsrc/content/docs/reference/agent-connectors/jira.mdxsrc/content/docs/reference/agent-connectors/linear.mdxsrc/content/docs/reference/agent-connectors/onedrive.mdxsrc/content/docs/reference/agent-connectors/onenote.mdxsrc/content/docs/reference/agent-connectors/outlook.mdxsrc/content/docs/reference/agent-connectors/salesforce.mdx
|
@coderabbitai please approve |
|
🧠 Learnings used✅ Actions performedComments resolved and changes approved. |
Summary by CodeRabbit
New Features
Documentation
Style
Chores