@jskit-ai/connectors-catalog 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/README.md +192 -0
  2. package/docs/ai-upstream-notices.md +51 -0
  3. package/docs/ai.md +191 -0
  4. package/docs/airtable.md +130 -0
  5. package/docs/algolia.md +190 -0
  6. package/docs/amazon-redshift.md +229 -0
  7. package/docs/amplitude.md +210 -0
  8. package/docs/apify.md +162 -0
  9. package/docs/apollo-io.md +200 -0
  10. package/docs/asana.md +126 -0
  11. package/docs/ashby.md +188 -0
  12. package/docs/atlassian.md +224 -0
  13. package/docs/attention.md +162 -0
  14. package/docs/aws-athena.md +150 -0
  15. package/docs/aws-credentials.md +75 -0
  16. package/docs/aws-s3.md +193 -0
  17. package/docs/bigquery.md +146 -0
  18. package/docs/brevo.md +122 -0
  19. package/docs/calendly.md +158 -0
  20. package/docs/canva.md +191 -0
  21. package/docs/chargebee.md +192 -0
  22. package/docs/clay.md +194 -0
  23. package/docs/clickhouse.md +242 -0
  24. package/docs/confidence-exp.md +74 -0
  25. package/docs/confidence-flags.md +75 -0
  26. package/docs/confidence-oauth.md +137 -0
  27. package/docs/contentful.md +123 -0
  28. package/docs/databricks.md +180 -0
  29. package/docs/dbt-semantic-layer.md +175 -0
  30. package/docs/elevenlabs.md +102 -0
  31. package/docs/figma.md +132 -0
  32. package/docs/firebase-cloud-messaging.md +262 -0
  33. package/docs/firecrawl.md +137 -0
  34. package/docs/fireflies.md +95 -0
  35. package/docs/fireworks-ai.md +53 -0
  36. package/docs/gatewayapi.md +113 -0
  37. package/docs/gemini-enterprise.md +224 -0
  38. package/docs/github-api.md +133 -0
  39. package/docs/gitlab-api.md +138 -0
  40. package/docs/gmail.md +133 -0
  41. package/docs/gong.md +205 -0
  42. package/docs/google-ads.md +156 -0
  43. package/docs/google-analytics.md +202 -0
  44. package/docs/google-docs.md +105 -0
  45. package/docs/google-drive.md +108 -0
  46. package/docs/google-maps-platform.md +208 -0
  47. package/docs/google-oauth.md +123 -0
  48. package/docs/google-search-console.md +124 -0
  49. package/docs/google-sheets.md +94 -0
  50. package/docs/google-slides.md +95 -0
  51. package/docs/granola.md +178 -0
  52. package/docs/hex.md +161 -0
  53. package/docs/heygen.md +124 -0
  54. package/docs/hubspot.md +142 -0
  55. package/docs/incident-io.md +118 -0
  56. package/docs/inngest.md +178 -0
  57. package/docs/klipy.md +149 -0
  58. package/docs/lexware.md +144 -0
  59. package/docs/lightspeed.md +193 -0
  60. package/docs/linear.md +137 -0
  61. package/docs/linkedin.md +196 -0
  62. package/docs/logo-dev.md +152 -0
  63. package/docs/mailgun.md +153 -0
  64. package/docs/mapbox.md +174 -0
  65. package/docs/microsoft-excel.md +97 -0
  66. package/docs/microsoft-fabric.md +249 -0
  67. package/docs/microsoft-oauth.md +143 -0
  68. package/docs/microsoft-onedrive.md +76 -0
  69. package/docs/microsoft-onenote.md +75 -0
  70. package/docs/microsoft-outlook.md +90 -0
  71. package/docs/microsoft-powerpoint.md +119 -0
  72. package/docs/microsoft-sharepoint.md +75 -0
  73. package/docs/microsoft-teams.md +72 -0
  74. package/docs/microsoft-word.md +119 -0
  75. package/docs/miro.md +117 -0
  76. package/docs/n8n.md +169 -0
  77. package/docs/notion.md +137 -0
  78. package/docs/oura.md +161 -0
  79. package/docs/paddle.md +168 -0
  80. package/docs/perplexity.md +85 -0
  81. package/docs/pipedrive.md +120 -0
  82. package/docs/polar.md +63 -0
  83. package/docs/posthog.md +227 -0
  84. package/docs/prestashop.md +151 -0
  85. package/docs/replicate.md +60 -0
  86. package/docs/resend.md +153 -0
  87. package/docs/salesforce.md +234 -0
  88. package/docs/sanity.md +122 -0
  89. package/docs/semrush.md +276 -0
  90. package/docs/sentry.md +112 -0
  91. package/docs/sevdesk.md +107 -0
  92. package/docs/shopify.md +206 -0
  93. package/docs/slack.md +257 -0
  94. package/docs/snowflake.md +271 -0
  95. package/docs/storyblok.md +130 -0
  96. package/docs/stripe.md +77 -0
  97. package/docs/supabase.md +51 -0
  98. package/docs/tally.md +105 -0
  99. package/docs/telegram.md +165 -0
  100. package/docs/tiktok.md +201 -0
  101. package/docs/twilio.md +284 -0
  102. package/docs/twitch.md +428 -0
  103. package/docs/wave.md +440 -0
  104. package/docs/wix.md +1249 -0
  105. package/docs/wiz.md +177 -0
  106. package/docs/woocommerce.md +400 -0
  107. package/docs/wordpress-com.md +358 -0
  108. package/docs/wordpress-self-hosted.md +252 -0
  109. package/docs/workday.md +292 -0
  110. package/docs/x-twitter.md +188 -0
  111. package/docs/xero.md +429 -0
  112. package/docs/zoho-books.md +214 -0
  113. package/docs/zoho-crm.md +192 -0
  114. package/package.json +153 -0
  115. package/patterns/ai-connections/PATTERN.md +84 -0
  116. package/patterns/ai-connections/example/ai-model.js +11 -0
  117. package/patterns/ai-connections/example/perplexity-answer.js +29 -0
  118. package/patterns/api-key-connection/PATTERN.md +368 -0
  119. package/patterns/api-key-connection/example/connections.js +18 -0
  120. package/patterns/api-key-connection/example/integrations.json +19 -0
  121. package/patterns/assistant-mcp/PATTERN.md +110 -0
  122. package/patterns/assistant-mcp/example/integrations.json +13 -0
  123. package/patterns/assistant-mcp-oauth/PATTERN.md +235 -0
  124. package/patterns/assistant-mcp-oauth/example/integrations.json +102 -0
  125. package/patterns/aws-storage-queries/PATTERN.md +169 -0
  126. package/patterns/aws-storage-queries/example/formats/data-formats.js +35 -0
  127. package/patterns/aws-storage-queries/example/formats/package-lock.json +49 -0
  128. package/patterns/aws-storage-queries/example/formats/package.json +12 -0
  129. package/patterns/aws-storage-queries/example/formats/verify-formats.mjs +37 -0
  130. package/patterns/aws-storage-queries/example/integrations.json +38 -0
  131. package/patterns/aws-storage-queries/example/s3-transfer.js +34 -0
  132. package/patterns/event-delivery/PATTERN.md +151 -0
  133. package/patterns/event-delivery/example/integrations.json +17 -0
  134. package/patterns/firebase-messaging/PATTERN.md +156 -0
  135. package/patterns/firebase-messaging/example/server/notifications.js +23 -0
  136. package/patterns/google-ads-search/PATTERN.md +92 -0
  137. package/patterns/google-ads-search/example/ads-setup.js +25 -0
  138. package/patterns/oauth-connection/PATTERN.md +724 -0
  139. package/patterns/oauth-connection/example/integrations.json +20 -0
  140. package/patterns/paddle-catalogue/PATTERN.md +78 -0
  141. package/patterns/paddle-catalogue/example/create-products.js +38 -0
  142. package/patterns/public-image/PATTERN.md +84 -0
  143. package/patterns/public-image/example/integrations.json +13 -0
  144. package/patterns/public-image/example/logo-url.js +16 -0
  145. package/patterns/redshift-queries/PATTERN.md +150 -0
  146. package/patterns/redshift-queries/example/integrations.json +33 -0
  147. package/patterns/source-scanning/PATTERN.md +83 -0
  148. package/patterns/source-scanning/example/source-scanner.js +13 -0
  149. package/src/client/firebase-cloud-messaging.js +10 -0
  150. package/src/client/google-analytics.js +72 -0
  151. package/src/client/google-maps-platform.js +39 -0
  152. package/src/client/logo-dev.js +36 -0
  153. package/src/server/ai.js +46 -0
  154. package/src/server/airtable.js +67 -0
  155. package/src/server/algolia.js +63 -0
  156. package/src/server/amazon-redshift.js +96 -0
  157. package/src/server/amplitude.js +31 -0
  158. package/src/server/apify.js +68 -0
  159. package/src/server/apollo-io.js +85 -0
  160. package/src/server/asana.js +64 -0
  161. package/src/server/ashby.js +61 -0
  162. package/src/server/atlassian.js +32 -0
  163. package/src/server/attention.js +93 -0
  164. package/src/server/aws-athena.js +82 -0
  165. package/src/server/aws-s3.js +49 -0
  166. package/src/server/awsTransport.js +75 -0
  167. package/src/server/bigquery.js +97 -0
  168. package/src/server/brevo.js +97 -0
  169. package/src/server/calendly.js +77 -0
  170. package/src/server/canva.js +13 -0
  171. package/src/server/chargebee.js +88 -0
  172. package/src/server/clay.js +78 -0
  173. package/src/server/clickhouse.js +66 -0
  174. package/src/server/confidence.js +29 -0
  175. package/src/server/contentful.js +40 -0
  176. package/src/server/databricks.js +55 -0
  177. package/src/server/dbt-semantic-layer.js +95 -0
  178. package/src/server/elevenlabs.js +81 -0
  179. package/src/server/figma.js +24 -0
  180. package/src/server/firebase-cloud-messaging.js +111 -0
  181. package/src/server/firecrawl.js +70 -0
  182. package/src/server/fireflies.js +31 -0
  183. package/src/server/fireworks-ai.js +16 -0
  184. package/src/server/gatewayapi.js +48 -0
  185. package/src/server/gemini-enterprise.js +47 -0
  186. package/src/server/github-api.js +90 -0
  187. package/src/server/gitlab-api.js +67 -0
  188. package/src/server/gmail.js +60 -0
  189. package/src/server/gong.js +52 -0
  190. package/src/server/google-ads-search.js +134 -0
  191. package/src/server/google-ads.js +80 -0
  192. package/src/server/google-docs.js +36 -0
  193. package/src/server/google-drive.js +71 -0
  194. package/src/server/google-maps-platform.js +90 -0
  195. package/src/server/google-search-console.js +31 -0
  196. package/src/server/google-sheets.js +60 -0
  197. package/src/server/google-slides.js +36 -0
  198. package/src/server/google.js +61 -0
  199. package/src/server/granola.js +115 -0
  200. package/src/server/graphqlOperation.js +15 -0
  201. package/src/server/hex.js +29 -0
  202. package/src/server/heygen.js +54 -0
  203. package/src/server/hubspot.js +85 -0
  204. package/src/server/incident-io.js +68 -0
  205. package/src/server/inngest.js +86 -0
  206. package/src/server/jsonOperation.js +34 -0
  207. package/src/server/klipy.js +34 -0
  208. package/src/server/lexware.js +59 -0
  209. package/src/server/lightspeed.js +82 -0
  210. package/src/server/linear.js +52 -0
  211. package/src/server/linkedin.js +74 -0
  212. package/src/server/mailgun.js +76 -0
  213. package/src/server/mapbox.js +46 -0
  214. package/src/server/mcpRegistration.js +41 -0
  215. package/src/server/mcpTransport.js +60 -0
  216. package/src/server/microsoft-excel.js +67 -0
  217. package/src/server/microsoft-fabric.js +81 -0
  218. package/src/server/microsoft-onedrive.js +58 -0
  219. package/src/server/microsoft-onenote.js +52 -0
  220. package/src/server/microsoft-outlook.js +58 -0
  221. package/src/server/microsoft-powerpoint.js +5 -0
  222. package/src/server/microsoft-sharepoint.js +46 -0
  223. package/src/server/microsoft-teams.js +29 -0
  224. package/src/server/microsoft-word.js +5 -0
  225. package/src/server/microsoft.js +88 -0
  226. package/src/server/miro.js +29 -0
  227. package/src/server/n8n.js +78 -0
  228. package/src/server/notion.js +76 -0
  229. package/src/server/oura.js +48 -0
  230. package/src/server/paddle.js +83 -0
  231. package/src/server/perplexity.js +15 -0
  232. package/src/server/pipedrive.js +95 -0
  233. package/src/server/polar.js +20 -0
  234. package/src/server/posthog.js +44 -0
  235. package/src/server/prestashop.js +42 -0
  236. package/src/server/replicate.js +42 -0
  237. package/src/server/resend.js +93 -0
  238. package/src/server/salesforce.js +84 -0
  239. package/src/server/sanity.js +31 -0
  240. package/src/server/semrush.js +359 -0
  241. package/src/server/sentry.js +30 -0
  242. package/src/server/sevdesk.js +20 -0
  243. package/src/server/shopify.js +99 -0
  244. package/src/server/slack.js +143 -0
  245. package/src/server/snowflake.js +139 -0
  246. package/src/server/storyblok.js +49 -0
  247. package/src/server/stripe.js +13 -0
  248. package/src/server/supabase.js +13 -0
  249. package/src/server/tally.js +78 -0
  250. package/src/server/telegram.js +55 -0
  251. package/src/server/tiktok.js +86 -0
  252. package/src/server/twilio.js +90 -0
  253. package/src/server/twitch.js +409 -0
  254. package/src/server/wave.js +520 -0
  255. package/src/server/wix.js +1048 -0
  256. package/src/server/wiz.js +117 -0
  257. package/src/server/woocommerce.js +412 -0
  258. package/src/server/wordpress-com.js +236 -0
  259. package/src/server/wordpress-self-hosted.js +134 -0
  260. package/src/server/workday.js +136 -0
  261. package/src/server/x-twitter.js +110 -0
  262. package/src/server/xero.js +397 -0
  263. package/src/server/zoho-books.js +90 -0
  264. package/src/server/zoho-crm.js +89 -0
  265. package/src/server/zohoOAuth.js +21 -0
  266. package/src/shared/ai-models.json +8049 -0
  267. package/src/shared/ai.js +63 -0
  268. package/src/shared/algolia.js +29 -0
  269. package/src/shared/amazon-redshift.js +51 -0
  270. package/src/shared/amplitude.js +28 -0
  271. package/src/shared/atlassian.js +43 -0
  272. package/src/shared/aws.js +72 -0
  273. package/src/shared/canva.js +66 -0
  274. package/src/shared/chargebee.js +26 -0
  275. package/src/shared/clickhouse.js +38 -0
  276. package/src/shared/confidence.js +28 -0
  277. package/src/shared/databricks.js +33 -0
  278. package/src/shared/dbt-semantic-layer.js +32 -0
  279. package/src/shared/definitions.js +140 -0
  280. package/src/shared/figma.js +21 -0
  281. package/src/shared/firebase-cloud-messaging.js +45 -0
  282. package/src/shared/gemini-enterprise.js +33 -0
  283. package/src/shared/gong.js +33 -0
  284. package/src/shared/google-ads-search.js +31 -0
  285. package/src/shared/google-ads.js +28 -0
  286. package/src/shared/google-maps-platform.js +28 -0
  287. package/src/shared/google.js +133 -0
  288. package/src/shared/granola.js +25 -0
  289. package/src/shared/hex.js +28 -0
  290. package/src/shared/inngest.js +35 -0
  291. package/src/shared/lightspeed.js +75 -0
  292. package/src/shared/linkedin.js +27 -0
  293. package/src/shared/logo-dev.js +21 -0
  294. package/src/shared/mapbox.js +38 -0
  295. package/src/shared/mcp.js +92 -0
  296. package/src/shared/microsoft-fabric.js +47 -0
  297. package/src/shared/microsoft.js +231 -0
  298. package/src/shared/miro.js +27 -0
  299. package/src/shared/oura.js +23 -0
  300. package/src/shared/posthog.js +33 -0
  301. package/src/shared/prestashop.js +23 -0
  302. package/src/shared/salesforce.js +36 -0
  303. package/src/shared/semrush.js +24 -0
  304. package/src/shared/shopify.js +51 -0
  305. package/src/shared/siteUrl.js +12 -0
  306. package/src/shared/slack.js +88 -0
  307. package/src/shared/snowflake.js +55 -0
  308. package/src/shared/tiktok.js +22 -0
  309. package/src/shared/tokens.js +747 -0
  310. package/src/shared/twilio.js +41 -0
  311. package/src/shared/twitch.js +49 -0
  312. package/src/shared/wave.js +52 -0
  313. package/src/shared/wix.js +40 -0
  314. package/src/shared/wiz.js +41 -0
  315. package/src/shared/wordpress-com.js +30 -0
  316. package/src/shared/wordpress.js +69 -0
  317. package/src/shared/workday.js +50 -0
  318. package/src/shared/x-twitter.js +19 -0
  319. package/src/shared/xero.js +46 -0
  320. package/src/shared/zoho-books.js +39 -0
  321. package/src/shared/zoho-crm.js +43 -0
  322. package/src/shared/zoho-regions.js +12 -0
  323. package/test/ai.test.js +136 -0
  324. package/test/airtable.test.js +125 -0
  325. package/test/algolia.test.js +207 -0
  326. package/test/amazon-redshift.test.js +272 -0
  327. package/test/amplitude.test.js +239 -0
  328. package/test/apify.test.js +93 -0
  329. package/test/apollo-io.test.js +125 -0
  330. package/test/asana.test.js +99 -0
  331. package/test/ashby.test.js +97 -0
  332. package/test/atlassian.test.js +249 -0
  333. package/test/attention.test.js +79 -0
  334. package/test/aws.test.js +405 -0
  335. package/test/brevo.test.js +71 -0
  336. package/test/calendly.test.js +136 -0
  337. package/test/canva.test.js +258 -0
  338. package/test/chargebee.test.js +195 -0
  339. package/test/clickhouse.test.js +278 -0
  340. package/test/confidence.test.js +205 -0
  341. package/test/databricks.test.js +253 -0
  342. package/test/dbt-semantic-layer.test.js +221 -0
  343. package/test/designMcp.test.js +336 -0
  344. package/test/elevenlabs.test.js +52 -0
  345. package/test/firebase-cloud-messaging.test.js +242 -0
  346. package/test/firecrawl.test.js +66 -0
  347. package/test/gemini-enterprise.test.js +218 -0
  348. package/test/github-api.test.js +167 -0
  349. package/test/gitlab-api.test.js +160 -0
  350. package/test/gong.test.js +192 -0
  351. package/test/google-ads.test.js +350 -0
  352. package/test/google-maps-platform.test.js +191 -0
  353. package/test/google.test.js +710 -0
  354. package/test/granola.test.js +240 -0
  355. package/test/hex.test.js +253 -0
  356. package/test/heygen.test.js +121 -0
  357. package/test/hubspot.test.js +103 -0
  358. package/test/inngest.test.js +219 -0
  359. package/test/lightspeed.test.js +250 -0
  360. package/test/linear.test.js +146 -0
  361. package/test/linkedin.test.js +243 -0
  362. package/test/logo-dev.test.js +79 -0
  363. package/test/mailgun.test.js +107 -0
  364. package/test/mapbox.test.js +181 -0
  365. package/test/mcp.test.js +227 -0
  366. package/test/microsoft-fabric.test.js +258 -0
  367. package/test/microsoft.test.js +554 -0
  368. package/test/n8nOAuth.test.js +188 -0
  369. package/test/notionOAuth.test.js +183 -0
  370. package/test/oura.test.js +211 -0
  371. package/test/paddleCatalogue.test.js +51 -0
  372. package/test/paddlePermissions.test.js +101 -0
  373. package/test/perplexityComposition.test.js +39 -0
  374. package/test/pipedriveOAuth.test.js +140 -0
  375. package/test/posthog.test.js +200 -0
  376. package/test/prestashop.test.js +207 -0
  377. package/test/resend.test.js +163 -0
  378. package/test/salesforce.test.js +276 -0
  379. package/test/semrush.test.js +479 -0
  380. package/test/sentry.test.js +35 -0
  381. package/test/shopify.test.js +247 -0
  382. package/test/slack.test.js +320 -0
  383. package/test/snowflake.test.js +391 -0
  384. package/test/tally.test.js +75 -0
  385. package/test/telegram.test.js +58 -0
  386. package/test/tiktok.test.js +243 -0
  387. package/test/tokens.test.js +1079 -0
  388. package/test/twilio.test.js +221 -0
  389. package/test/twitch.test.js +573 -0
  390. package/test/wave.test.js +678 -0
  391. package/test/wix.test.js +1099 -0
  392. package/test/wiz.test.js +185 -0
  393. package/test/wordpress-com.test.js +469 -0
  394. package/test/wordpress.test.js +660 -0
  395. package/test/workday.test.js +314 -0
  396. package/test/x-twitter.test.js +256 -0
  397. package/test/xero.test.js +700 -0
  398. package/test/zoho-books.test.js +253 -0
  399. package/test/zoho-crm.test.js +223 -0
@@ -0,0 +1,88 @@
1
+ import { createSchema } from "json-rest-schema";
2
+ import { secretReference } from "@jskit-ai/connectors-core/shared/configuration";
3
+
4
+ const scopes = [
5
+ {"value": "channels:history", "label": "View messages and other content in public channels you are in", "actors": ["user", "bot"], "recommended": true},
6
+ {"value": "channels:read", "label": "View basic information about public channels in a workspace", "actors": ["user", "bot"], "recommended": true},
7
+ {"value": "bookmarks:read", "label": "List bookmarks", "actors": ["user", "bot"]},
8
+ {"value": "bookmarks:write", "label": "Create, edit, and remove bookmarks", "actors": ["user", "bot"]},
9
+ {"value": "calls:read", "label": "View information about ongoing and past calls", "actors": ["user", "bot"]},
10
+ {"value": "calls:write", "label": "Start and manage calls in a workspace", "actors": ["user", "bot"]},
11
+ {"value": "canvases:read", "label": "Access contents of canvases created inside Slack.", "actors": ["user", "bot"]},
12
+ {"value": "canvases:write", "label": "Create, edit and remove canvases", "actors": ["user", "bot"]},
13
+ {"value": "channels:write", "label": "Manage a user's public channels and create new ones on a user's behalf", "actors": ["user"]},
14
+ {"value": "channels:write.invites", "label": "Invite members to public channels", "actors": ["user", "bot"]},
15
+ {"value": "channels:write.topic", "label": "Set the description of public channels", "actors": ["user", "bot"]},
16
+ {"value": "chat:write", "label": "Send messages", "actors": ["user", "bot"]},
17
+ {"value": "dnd:read", "label": "View Do Not Disturb settings for people in a workspace", "actors": ["user", "bot"]},
18
+ {"value": "dnd:write", "label": "Edit a user's Do Not Disturb settings", "actors": ["user"]},
19
+ {"value": "emoji:read", "label": "View custom emoji in a workspace", "actors": ["user", "bot"]},
20
+ {"value": "files:read", "label": "View files shared in channels and conversations that your Slack app has been added to", "actors": ["user", "bot"]},
21
+ {"value": "files:write", "label": "Upload, edit, and delete files as your Slack app", "actors": ["user", "bot"]},
22
+ {"value": "groups:history", "label": "View messages and other content in private channels that your Slack app has been added to", "actors": ["user", "bot"]},
23
+ {"value": "groups:read", "label": "View basic information about private channels that your Slack app has been added to", "actors": ["user", "bot"]},
24
+ {"value": "groups:write", "label": "Manage private channels that your Slack app has been added to and create new ones", "actors": ["user", "bot"]},
25
+ {"value": "groups:write.invites", "label": "Invite members to private channels", "actors": ["user", "bot"]},
26
+ {"value": "groups:write.topic", "label": "Set the description of private channels", "actors": ["user", "bot"]},
27
+ {"value": "im:history", "label": "View messages and other content in direct messages you are in", "actors": ["user", "bot"]},
28
+ {"value": "im:read", "label": "View basic information about direct messages you are in", "actors": ["user", "bot"]},
29
+ {"value": "im:write", "label": "Start direct messages with people", "actors": ["user", "bot"]},
30
+ {"value": "im:write.topic", "label": "Set the description in direct messages", "actors": ["user", "bot"]},
31
+ {"value": "lists:read", "label": "View Slack Lists", "actors": ["user", "bot"]},
32
+ {"value": "lists:write", "label": "Create, edit, and delete Slack Lists", "actors": ["user", "bot"]},
33
+ {"value": "mpim:history", "label": "View messages and other content in group direct messages that your Slack app has been added to", "actors": ["user", "bot"]},
34
+ {"value": "mpim:read", "label": "View basic information about group direct messages that your Slack app has been added to", "actors": ["user", "bot"]},
35
+ {"value": "mpim:write", "label": "Start group direct messages with people", "actors": ["user", "bot"]},
36
+ {"value": "mpim:write.topic", "label": "Set the description in group direct messages", "actors": ["user", "bot"]},
37
+ {"value": "pins:read", "label": "View pinned content in channels and conversations that your Slack app has been added to", "actors": ["user", "bot"]},
38
+ {"value": "pins:write", "label": "Add and remove pinned messages and files", "actors": ["user", "bot"]},
39
+ {"value": "reactions:read", "label": "View emoji reactions", "actors": ["user", "bot"]},
40
+ {"value": "reactions:write", "label": "Add and edit emoji reactions", "actors": ["user", "bot"]},
41
+ {"value": "reminders:read", "label": "View reminders created by your Slack app", "actors": ["user"]},
42
+ {"value": "reminders:write", "label": "Add, remove, or mark reminders as complete", "actors": ["user"]},
43
+ {"value": "search:read.files", "label": "Search a workspace's content in files", "actors": ["user", "bot"]},
44
+ {"value": "search:read.im", "label": "Search a workspace's content in direct messages", "actors": ["user"]},
45
+ {"value": "search:read.mpim", "label": "Search a workspace's content in group direct messages", "actors": ["user"]},
46
+ {"value": "search:read.private", "label": "Search a workspace's content in private channels", "actors": ["user"]},
47
+ {"value": "search:read.public", "label": "Search a workspace's content in public channels", "actors": ["user", "bot"]},
48
+ {"value": "search:read.users", "label": "Search a workspace's users", "actors": ["user", "bot"]},
49
+ {"value": "team:read", "label": "View the name, email domain, and icon for workspaces your Slack app is connected to", "actors": ["user", "bot"]},
50
+ {"value": "usergroups:read", "label": "View user groups in a workspace", "actors": ["user", "bot"]},
51
+ {"value": "usergroups:write", "label": "Create and manage user groups", "actors": ["user", "bot"]},
52
+ {"value": "users:read", "label": "View people in a workspace", "actors": ["user", "bot"]},
53
+ {"value": "users:read.email", "label": "View email addresses of people in a workspace", "actors": ["user", "bot"]},
54
+ {"value": "users:write", "label": "Set presence for your Slack app", "actors": ["user", "bot"]},
55
+ {"value": "users.profile:read", "label": "View profile details about people in a workspace", "actors": ["user", "bot"]},
56
+ {"value": "users.profile:write", "label": "Edit a user's profile information and status", "actors": ["user"]},
57
+ {"value": "channels:join", "label": "Join public channels in a workspace", "actors": ["bot"]},
58
+ {"value": "channels:manage", "label": "Manage public channels that your Slack app has been added to and create new ones", "actors": ["bot"]},
59
+ {"value": "chat:write.customize", "label": "Customize the content of messages sent by your Slack app", "actors": ["bot"]},
60
+ {"value": "chat:write.public", "label": "Send messages to channels your Slack app isn't a member of", "actors": ["bot"]},
61
+ {"value": "metadata.message:read", "label": "Allows your Slack app to read message metadata in channels that your Slack app has been added to", "actors": ["bot"]}
62
+ ];
63
+
64
+ const slackDefinition = Object.freeze({
65
+ id: "slack", name: "Slack", description: "Connect as a Slack user or install a bot to read conversations and send messages.",
66
+ accountModes: ["shared", "per-user", "assistant"], authenticationMethods: ["oauth2"],
67
+ scopes,
68
+ scopesForSettings: ({ actor = "user" } = {}) => scopes.filter((scope) => scope.actors.includes(actor)),
69
+ settingsSchema: createSchema({ signingSecretRef: { ...secretReference, required: false }, actor: { type: "string", enum: ["user", "bot"], defaultTo: "user" } }),
70
+ settingsFields: [{ name: "signingSecretRef", label: "Signing secret reference (optional)", placeholder: "env:SLACK_SIGNING_SECRET", hint: "For incoming events and interactions: Basic Information → App Credentials → Signing Secret. Keep the value in application Env, separate from Client Secret." }, { name: "actor", label: "Act in Slack as", items: [
71
+ { value: "user", title: "Connected user" }, { value: "bot", title: "Installed bot" }
72
+ ], hint: "User access acts as the person who connects. Bot access acts as the app in its installed workspace. Changing this choice removes permissions unavailable to that identity and requires reconnecting." }],
73
+ setup: {
74
+ url: "https://docs.slack.dev/authentication/installing-with-oauth/",
75
+ steps: [
76
+ "Open Your Apps in the Slack developer site. Choose Create New App, From scratch, name it, and select the development workspace.",
77
+ "Under OAuth & Permissions, add the exact HTTPS backend callback to Redirect URLs and save it.",
78
+ "Add the selected permissions under User Token Scopes for Connected user, or Bot Token Scopes for Installed bot. Channel listing requires channels:read; history needs the matching channels/groups/im/mpim:history permission, profiles users:read and sending chat:write. Reconnect after changing permissions.",
79
+ "Under Basic Information, copy Client ID and store Client Secret in the referenced Env variable. Also bind the HTTPS callback URL.",
80
+ "Enable token rotation before new installations if you want expiring tokens. The runtime handles new rotating or non-rotating grants; it does not convert an existing grant to rotation.",
81
+ "Use Manage Distribution for other workspaces. Workspace approval, Slack review and restricted scopes may require manual approval.",
82
+ "For incoming events, copy Signing Secret from Basic Information → App Credentials into application Env. In Event Subscriptions, enable events, enter your application HTTPS event route and select required events. For buttons or views, enable Interactivity & Shortcuts and enter the application interaction route. These routes are separate from the OAuth callback; the app must implement them first.",
83
+ "The application must verify signed raw request bytes, bind the Slack app/workspace, acknowledge promptly and deduplicate events before actions. Saving this form does not subscribe or deploy a callback. History reads one page of at most 15 messages; sends are not automatically retried. Invite bots to channels they need.",
84
+ "Save configuration, then complete the application's separate consent flow. Installing a bot is not logging into the application as a Slack user."
85
+ ]
86
+ }
87
+ });
88
+ export { slackDefinition };
@@ -0,0 +1,55 @@
1
+ import { createSchema } from "json-rest-schema";
2
+
3
+ const rolePattern = /^[\x20-\x21\x23-\x5b\x5d-\x7e]{1,255}$/u;
4
+ function snowflakeRoleScope(role) {
5
+ if (!role || !rolePattern.test(role)) return null;
6
+ return /^[A-Za-z0-9_.~-]+$/u.test(role) ? `session:role:${role}`
7
+ : `session:role-encoded:${encodeURIComponent(role).replace(/[!'()*]/gu, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`)}`;
8
+ }
9
+ const snowflakeDefinition = Object.freeze({
10
+ id: "snowflake", name: "Snowflake", description: "Query data and manage warehouses with a connected Snowflake role.",
11
+ accountModes: ["shared", "per-user", "assistant"], authenticationMethods: ["oauth2"],
12
+ oauthClientAuthenticationMethods: ["client_secret_post", "client_secret_basic"],
13
+ settingsSchema: createSchema({
14
+ warehouse: { type: "string", minLength: 1, maxLength: 255, noTrim: true },
15
+ database: { type: "string", minLength: 1, maxLength: 255, noTrim: true },
16
+ schema: { type: "string", minLength: 1, maxLength: 255, noTrim: true },
17
+ accountUrl: { type: "string", required: true, maxLength: 253,
18
+ validator: (value) => /^https:\/\/[a-z0-9][a-z0-9_-]*(?:\.[a-z0-9][a-z0-9-]*){0,3}\.snowflakecomputing\.com\/?$/u.test(value) ||
19
+ "Enter the HTTPS Snowflake account URL, without a port, path, query or fragment." },
20
+ role: { type: "string", minLength: 1, maxLength: 255,
21
+ validator: (value) => rolePattern.test(value) && !["ACCOUNTADMIN", "SECURITYADMIN", "ORGADMIN", "GLOBALORGADMIN"].includes(value.toUpperCase()) ||
22
+ "Use a non-administrator role name in ASCII, with exact case and without quotes or backslashes." }
23
+ }),
24
+ settingsFields: [
25
+ { name: "warehouse", label: "Warehouse (optional)", placeholder: "APP_WAREHOUSE",
26
+ hint: "Exact case-sensitive warehouse name for SQL execution. Blank uses the connected user's default. Queries may resume compute and incur Snowflake charges." },
27
+ { name: "database", label: "Database (optional)", placeholder: "APP_DATABASE",
28
+ hint: "Exact case-sensitive database name for SQL execution; blank uses the user's default namespace. This is a default, not an access boundary: Snowflake role grants control access." },
29
+ { name: "schema", label: "Schema (optional)", placeholder: "PUBLIC",
30
+ hint: "Exact case-sensitive schema name for SQL execution; blank uses the user's default namespace." },
31
+ { name: "accountUrl", label: "Account URL", placeholder: "https://myorg-myaccount.snowflakecomputing.com",
32
+ hint: "Copy the account URL from Snowflake. Snowsight browser paths and organization-console URLs are not API addresses." },
33
+ { name: "role", label: "Role", placeholder: "VIBE64_READER",
34
+ hint: "Use the exact name from SHOW ROLES, normally uppercase. Leave blank to use each connected user's default role. Shared accounts should use a dedicated role." }
35
+ ],
36
+ scopes: [{ value: "refresh_token", label: "Keep access between visits (required)", recommended: true, required: true }],
37
+ scopesForSettings: ({ role } = {}) => [
38
+ { value: "refresh_token", label: snowflakeRoleScope(role) ? "Keep access between visits" : "Keep access between visits (required)", recommended: true, required: !snowflakeRoleScope(role) },
39
+ ...(snowflakeRoleScope(role) ? [{ value: snowflakeRoleScope(role), label: `Use role ${role} (required)`, recommended: true, required: true }] : [])
40
+ ],
41
+ permissionsHint: "The role's Snowflake grants control access. SQL and warehouse actions use those grants and may incur compute charges. Connecting Snowflake does not sign users into your application.",
42
+ setup: { url: "https://docs.snowflake.com/en/user-guide/oauth-custom", steps: [
43
+ "Sign into the target account in Snowsight. Open account details and copy Account URL into this form. Do not use the browser's app.snowflake.com address. Each Snowflake account needs its own registration.",
44
+ "Ask an administrator with CREATE INTEGRATION to open Projects → Worksheets → + → SQL Worksheet (or a SQL file in Workspaces). Use a new integration name; do not replace an existing production registration.",
45
+ "Implement the application's callback first. Use its assigned hosting origin and actual backend callback path, save that full HTTPS URL in application Env, and enter its env: reference in Callback URL reference. Paste the same URL in the SQL below in place of YOUR_CALLBACK_URL.",
46
+ "Run: CREATE SECURITY INTEGRATION APP_CONNECTOR TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = CUSTOM OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' OAUTH_REDIRECT_URI = 'YOUR_CALLBACK_URL' OAUTH_ENFORCE_PKCE = TRUE OAUTH_ISSUE_REFRESH_TOKENS = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 86400 OAUTH_USE_SECONDARY_ROLES = NONE;",
47
+ "Run SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('APP_CONNECTOR'); Copy OAUTH_CLIENT_ID to Client ID. Save one returned client secret in application Env and enter only its env: reference in Client secret reference. Keep this query result out of source files, logs and chat.",
48
+ "Have the administrator grant the intended user a dedicated role and enter its exact name in Role. Blank uses that user's default role. ACCOUNTADMIN, SECURITYADMIN, ORGADMIN and GLOBALORGADMIN are excluded. OAuth registration privileges do not grant access to data.",
49
+ "For SQL, enter exact Warehouse, Database and Schema names from Snowsight or your administrator, without surrounding quotes. The role needs USAGE on the warehouse, database and schema plus SELECT on intended tables for reads, or the applicable write grants. These fields are defaults, not an access boundary.",
50
+ "Warehouse management needs separate grants: CREATE WAREHOUSE on the account to create, MODIFY to resize, OPERATE to resume/suspend, and OWNERSHIP to drop. Keep these out of reader roles. Resume, resize and query execution can incur Snowflake charges. New warehouses created by this connector start suspended with auto-resume disabled.",
51
+ "Save and connect the intended account. Per-user consent happens in the generated application's account screen. Verification lists visible databases: an empty successful list does not prove SQL access. Test an approved small query through your application; it owns query and warehouse permissions, polling and cancellation.",
52
+ "If consent expires or is revoked, reconnect. After a domain change, update OAUTH_REDIRECT_URI on the security integration and the application's callback Env together. Disconnect removes this application's stored connection; revoke delegated authorization in Snowflake separately when needed."
53
+ ] }
54
+ });
55
+ export { snowflakeDefinition, snowflakeRoleScope };
@@ -0,0 +1,22 @@
1
+ const tiktokDefinition = Object.freeze({
2
+ id: "tiktok", name: "TikTok", description: "Read a connected creator's profile and public video metadata.",
3
+ accountModes: ["shared", "per-user", "assistant"], authenticationMethods: ["oauth2"],
4
+ clientIdLabel: "Client key", clientIdHint: "Use the Client key from TikTok's app credentials, not its App ID.",
5
+ scopes: [
6
+ { value: "user.info.basic", label: "Read basic profile information (required)", required: true, recommended: true },
7
+ { value: "user.info.stats", label: "Read user statistics", recommended: true },
8
+ { value: "user.info.profile", label: "Read extended profile information", recommended: true },
9
+ { value: "video.list", label: "Read published video metadata", recommended: true }
10
+ ],
11
+ permissionsHint: "Basic profile access is required for verification. Users can decline the other permissions during consent; the corresponding operations then stay unavailable.",
12
+ setup: { url: "https://developers.tiktok.com/docs/en/getting-started-create-an-app", steps: [
13
+ "Sign into TikTok for Developers. Open your profile menu, choose Manage apps, then Connect an app and select its owner.",
14
+ "Complete the app's basic information and Web platform settings. Add Login Kit and Display API in Products, then add the required permissions under Scopes.",
15
+ "In Login Kit, configure Web and register the backend's exact HTTPS redirect URI. It must be static, contain no query or fragment, and be shorter than 512 characters.",
16
+ "Copy Client key into this form. Store Client secret and the approved callback URL in the referenced backend Env variables; keep secrets out of browser and desktop bundles.",
17
+ "Use Sandbox with designated test users during development. Complete URL ownership and app review requirements before production access.",
18
+ "Saving only writes configuration. The application runtime performs consent, refresh and profile/video reads; posting, Research API and application login are separate work."
19
+ ] }
20
+ });
21
+
22
+ export { tiktokDefinition };