runline 0.11.6 → 0.13.0
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.
- package/dist/commands/actions.js +3 -1
- package/dist/core/engine.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin/api.d.ts +2 -1
- package/dist/plugin/types.d.ts +2 -0
- package/dist/plugins/_shared/googleSchemas.js +23 -0
- package/dist/plugins/actionNetwork/src/index.js +23 -0
- package/dist/plugins/activeCampaign/src/index.js +48 -0
- package/dist/plugins/adalo/src/index.js +5 -0
- package/dist/plugins/affinity/src/index.js +16 -0
- package/dist/plugins/agileCrm/src/index.js +15 -0
- package/dist/plugins/airtable/src/index.js +10 -0
- package/dist/plugins/airtop/src/index.js +24 -0
- package/dist/plugins/apiTemplateIo/src/index.js +4 -0
- package/dist/plugins/asana/src/index.js +22 -0
- package/dist/plugins/autopilot/src/index.js +11 -0
- package/dist/plugins/bambooHr/src/index.js +11 -0
- package/dist/plugins/bannerbear/src/index.js +4 -0
- package/dist/plugins/baserow/src/index.js +8 -0
- package/dist/plugins/beeminder/src/index.js +18 -0
- package/dist/plugins/bitly/src/index.js +3 -0
- package/dist/plugins/bitwarden/src/index.js +19 -0
- package/dist/plugins/box/src/index.js +11 -0
- package/dist/plugins/brandfetch/src/index.js +5 -0
- package/dist/plugins/brevo/src/index.js +15 -0
- package/dist/plugins/bubble/src/index.js +5 -0
- package/dist/plugins/chargebee/src/index.js +5 -0
- package/dist/plugins/circleci/src/index.js +3 -0
- package/dist/plugins/ciscoWebex/src/index.js +10 -0
- package/dist/plugins/clearbit/src/index.js +3 -0
- package/dist/plugins/clickup/src/index.js +61 -0
- package/dist/plugins/clockify/src/index.js +25 -0
- package/dist/plugins/cloudflare/src/index.js +4 -0
- package/dist/plugins/cockpit/src/index.js +5 -0
- package/dist/plugins/coda/src/index.js +18 -0
- package/dist/plugins/coingecko/src/index.js +10 -0
- package/dist/plugins/contentful/src/index.js +7 -0
- package/dist/plugins/convertkit/src/index.js +16 -0
- package/dist/plugins/copper/src/index.js +7 -0
- package/dist/plugins/cortex/src/index.js +4 -0
- package/dist/plugins/currents/src/index.js +22 -0
- package/dist/plugins/customerIo/src/index.js +9 -0
- package/dist/plugins/databricks/src/index.js +34 -0
- package/dist/plugins/deepl/src/index.js +2 -0
- package/dist/plugins/demio/src/index.js +4 -0
- package/dist/plugins/dhl/src/index.js +1 -0
- package/dist/plugins/discord/src/index.js +13 -0
- package/dist/plugins/discourse/src/index.js +16 -0
- package/dist/plugins/disqus/src/index.js +4 -0
- package/dist/plugins/docker/src/index.js +5 -0
- package/dist/plugins/drift/src/index.js +5 -0
- package/dist/plugins/dropbox/src/index.js +9 -0
- package/dist/plugins/dropcontact/src/index.js +2 -0
- package/dist/plugins/egoi/src/index.js +4 -0
- package/dist/plugins/elasticsearch/src/index.js +9 -0
- package/dist/plugins/emelia/src/index.js +9 -0
- package/dist/plugins/erpnext/src/index.js +5 -0
- package/dist/plugins/facebookGraph/src/index.js +1 -0
- package/dist/plugins/freshdesk/src/index.js +10 -0
- package/dist/plugins/freshservice/src/index.js +7 -0
- package/dist/plugins/freshworksCrm/src/index.js +7 -0
- package/dist/plugins/getresponse/src/index.js +5 -0
- package/dist/plugins/ghost/src/index.js +5 -0
- package/dist/plugins/github/src/index.js +37 -0
- package/dist/plugins/gitlab/src/index.js +17 -0
- package/dist/plugins/gmail/src/index.js +200 -184
- package/dist/plugins/gong/src/index.js +4 -0
- package/dist/plugins/googleAppsScript/src/index.js +98 -43
- package/dist/plugins/googleCalendar/src/index.js +329 -250
- package/dist/plugins/googleContacts/src/index.js +144 -145
- package/dist/plugins/googleDocs/src/documents.js +31 -38
- package/dist/plugins/googleDocs/src/formatting.js +51 -47
- package/dist/plugins/googleDocs/src/images.js +23 -26
- package/dist/plugins/googleDocs/src/shared.js +55 -0
- package/dist/plugins/googleDocs/src/structure.js +111 -123
- package/dist/plugins/googleDocs/src/tables.js +103 -154
- package/dist/plugins/googleDocs/src/tabs.js +27 -23
- package/dist/plugins/googleDocs/src/text.js +106 -136
- package/dist/plugins/googleDrive/src/index.js +461 -408
- package/dist/plugins/googleImage/src/index.js +14 -16
- package/dist/plugins/googleSheets/src/index.js +527 -339
- package/dist/plugins/googleSlides/src/index.js +92 -72
- package/dist/plugins/googleTasks/src/index.js +94 -92
- package/dist/plugins/gotify/src/index.js +3 -0
- package/dist/plugins/gotowebinar/src/index.js +20 -0
- package/dist/plugins/grafana/src/index.js +17 -0
- package/dist/plugins/graphql/src/index.js +2 -0
- package/dist/plugins/grist/src/index.js +4 -0
- package/dist/plugins/hackernews/src/index.js +6 -0
- package/dist/plugins/halopsa/src/index.js +5 -0
- package/dist/plugins/harvest/src/index.js +14 -0
- package/dist/plugins/helpscout/src/index.js +13 -0
- package/dist/plugins/highlevel/src/index.js +17 -0
- package/dist/plugins/homeAssistant/src/index.js +13 -0
- package/dist/plugins/hubspot/src/index.js +14 -0
- package/dist/plugins/humanticAi/src/index.js +3 -0
- package/dist/plugins/hunter/src/index.js +3 -0
- package/dist/plugins/intercom/src/index.js +10 -0
- package/dist/plugins/iterable/src/index.js +6 -0
- package/dist/plugins/jenkins/src/index.js +11 -0
- package/dist/plugins/jira/src/index.js +16 -0
- package/dist/plugins/keap/src/index.js +28 -0
- package/dist/plugins/kobotoolbox/src/index.js +17 -0
- package/dist/plugins/lemlist/src/index.js +15 -0
- package/dist/plugins/linear/src/attachments.js +6 -0
- package/dist/plugins/linear/src/comments.js +5 -0
- package/dist/plugins/linear/src/cycles.js +2 -0
- package/dist/plugins/linear/src/initiatives.js +5 -0
- package/dist/plugins/linear/src/issues.js +14 -0
- package/dist/plugins/linear/src/labels.js +5 -0
- package/dist/plugins/linear/src/organization.js +1 -0
- package/dist/plugins/linear/src/projects.js +11 -0
- package/dist/plugins/linear/src/shared.js +2 -0
- package/dist/plugins/linear/src/states.js +2 -0
- package/dist/plugins/linear/src/teams.js +3 -0
- package/dist/plugins/linear/src/users.js +2 -0
- package/dist/plugins/linear/src/views.js +4 -0
- package/dist/plugins/linear/src/webhooks.js +4 -0
- package/dist/plugins/lingvanex/src/index.js +1 -0
- package/dist/plugins/linkedin/src/index.js +1 -0
- package/dist/plugins/lonescale/src/index.js +4 -0
- package/dist/plugins/magento/src/index.js +15 -0
- package/dist/plugins/mailcheck/src/index.js +1 -0
- package/dist/plugins/mailchimp/src/index.js +14 -0
- package/dist/plugins/mailerlite/src/index.js +4 -0
- package/dist/plugins/mailgun/src/index.js +1 -0
- package/dist/plugins/mailjet/src/index.js +3 -0
- package/dist/plugins/mandrill/src/index.js +2 -0
- package/dist/plugins/marketstack/src/index.js +3 -0
- package/dist/plugins/matrix/src/index.js +10 -0
- package/dist/plugins/mattermost/src/index.js +19 -0
- package/dist/plugins/mautic/src/index.js +20 -0
- package/dist/plugins/medium/src/index.js +3 -0
- package/dist/plugins/messagebird/src/index.js +2 -0
- package/dist/plugins/metabase/src/index.js +10 -0
- package/dist/plugins/microsoftCalendar/src/index.js +2 -0
- package/dist/plugins/microsoftFiles/src/index.js +5 -0
- package/dist/plugins/microsoftMail/src/index.js +4 -0
- package/dist/plugins/misp/src/index.js +44 -0
- package/dist/plugins/mocean/src/index.js +2 -0
- package/dist/plugins/monday/src/index.js +18 -0
- package/dist/plugins/monicaCrm/src/index.js +5 -0
- package/dist/plugins/msg91/src/index.js +1 -0
- package/dist/plugins/nasa/src/index.js +7 -0
- package/dist/plugins/netlify/src/index.js +7 -0
- package/dist/plugins/netscalerAdc/src/index.js +3 -0
- package/dist/plugins/nextcloud/src/index.js +13 -0
- package/dist/plugins/nocodb/src/index.js +5 -0
- package/dist/plugins/node/src/index.js +38 -0
- package/dist/plugins/notion/src/index.js +14 -0
- package/dist/plugins/npm/src/index.js +5 -0
- package/dist/plugins/odoo/src/index.js +6 -0
- package/dist/plugins/okta/src/index.js +5 -0
- package/dist/plugins/oneSimpleApi/src/index.js +10 -0
- package/dist/plugins/onfleet/src/index.js +24 -0
- package/dist/plugins/openThesaurus/src/index.js +1 -0
- package/dist/plugins/openai/src/index.js +1 -0
- package/dist/plugins/openweathermap/src/index.js +2 -0
- package/dist/plugins/oura/src/index.js +2 -0
- package/dist/plugins/paddle/src/index.js +9 -0
- package/dist/plugins/pagerduty/src/index.js +9 -0
- package/dist/plugins/parallel/src/index.js +1 -0
- package/dist/plugins/paypal/src/index.js +4 -0
- package/dist/plugins/peekalink/src/index.js +2 -0
- package/dist/plugins/phantombuster/src/index.js +5 -0
- package/dist/plugins/philipsHue/src/index.js +4 -0
- package/dist/plugins/pipedrive/src/index.js +14 -0
- package/dist/plugins/plivo/src/index.js +3 -0
- package/dist/plugins/postbin/src/index.js +6 -0
- package/dist/plugins/posthog/src/index.js +5 -0
- package/dist/plugins/profitwell/src/index.js +2 -0
- package/dist/plugins/pushbullet/src/index.js +4 -0
- package/dist/plugins/pushcut/src/index.js +1 -0
- package/dist/plugins/pushover/src/index.js +1 -0
- package/dist/plugins/quickbase/src/index.js +8 -0
- package/dist/plugins/quickbooks/src/index.js +5 -0
- package/dist/plugins/quickchart/src/index.js +1 -0
- package/dist/plugins/raindrop/src/index.js +13 -0
- package/dist/plugins/recraft/src/index.js +1 -0
- package/dist/plugins/reddit/src/index.js +10 -0
- package/dist/plugins/replicate/src/index.js +1 -0
- package/dist/plugins/rocketchat/src/index.js +1 -0
- package/dist/plugins/rundeck/src/index.js +2 -0
- package/dist/plugins/salesforce/src/metadata.js +4 -0
- package/dist/plugins/salesforce/src/query.js +5 -0
- package/dist/plugins/salesforce/src/sobjects.js +12 -0
- package/dist/plugins/salesmate/src/index.js +5 -0
- package/dist/plugins/securityScorecard/src/index.js +14 -0
- package/dist/plugins/segment/src/index.js +4 -0
- package/dist/plugins/sendgrid/src/index.js +10 -0
- package/dist/plugins/sendy/src/index.js +6 -0
- package/dist/plugins/sentry/src/index.js +24 -0
- package/dist/plugins/servicenow/src/index.js +10 -0
- package/dist/plugins/shiftLabs/src/index.js +6 -0
- package/dist/plugins/shiftLabs/src/issues.js +4 -0
- package/dist/plugins/shiftLabs/src/pages.js +10 -0
- package/dist/plugins/shiftLabs/src/shared.js +2 -0
- package/dist/plugins/shiftLabs/src/transcription.js +203 -0
- package/dist/plugins/shopify/src/index.js +10 -0
- package/dist/plugins/signl4/src/index.js +2 -0
- package/dist/plugins/slack/src/index.js +38 -0
- package/dist/plugins/sms77/src/index.js +2 -0
- package/dist/plugins/splunk/src/index.js +16 -0
- package/dist/plugins/spotify/src/index.js +30 -0
- package/dist/plugins/stackby/src/index.js +4 -0
- package/dist/plugins/steel/src/browser.js +7 -0
- package/dist/plugins/steel/src/captchas.js +3 -0
- package/dist/plugins/steel/src/credentials.js +4 -0
- package/dist/plugins/steel/src/extensions.js +5 -0
- package/dist/plugins/steel/src/files.js +10 -0
- package/dist/plugins/steel/src/profiles.js +4 -0
- package/dist/plugins/steel/src/sessions.js +11 -0
- package/dist/plugins/storyblok/src/index.js +7 -0
- package/dist/plugins/strapi/src/index.js +5 -0
- package/dist/plugins/strava/src/index.js +6 -0
- package/dist/plugins/stripe/src/index.js +20 -0
- package/dist/plugins/supabase/src/index.js +5 -0
- package/dist/plugins/syncromsp/src/index.js +20 -0
- package/dist/plugins/tapfiliate/src/index.js +11 -0
- package/dist/plugins/telegram/src/index.js +21 -0
- package/dist/plugins/thehive/src/index.js +23 -0
- package/dist/plugins/thehiveProject/src/index.js +31 -0
- package/dist/plugins/todoist/src/index.js +31 -0
- package/dist/plugins/together/src/index.js +1 -0
- package/dist/plugins/travisci/src/index.js +5 -0
- package/dist/plugins/trello/src/index.js +37 -0
- package/dist/plugins/twake/src/index.js +1 -0
- package/dist/plugins/twilio/src/index.js +2 -0
- package/dist/plugins/twist/src/index.js +22 -0
- package/dist/plugins/twitter/src/index.js +8 -0
- package/dist/plugins/unleashedSoftware/src/index.js +3 -0
- package/dist/plugins/uplead/src/index.js +2 -0
- package/dist/plugins/uproc/src/index.js +1 -0
- package/dist/plugins/uptimerobot/src/index.js +22 -0
- package/dist/plugins/urlscanio/src/index.js +3 -0
- package/dist/plugins/vercel/src/account.js +1 -0
- package/dist/plugins/vercel/src/deployments.js +5 -0
- package/dist/plugins/vercel/src/env.js +4 -0
- package/dist/plugins/vercel/src/projects.js +2 -0
- package/dist/plugins/vercel/src/shared.js +1 -0
- package/dist/plugins/vero/src/index.js +6 -0
- package/dist/plugins/vonage/src/index.js +1 -0
- package/dist/plugins/wekan/src/index.js +24 -0
- package/dist/plugins/woocommerce/src/index.js +5 -0
- package/dist/plugins/wordpress/src/index.js +10 -0
- package/dist/plugins/xai/src/index.js +1 -0
- package/dist/plugins/xero/src/index.js +8 -0
- package/dist/plugins/yourls/src/index.js +3 -0
- package/dist/plugins/zammad/src/index.js +12 -0
- package/dist/plugins/zendesk/src/index.js +18 -0
- package/dist/plugins/zoho/src/index.js +6 -0
- package/dist/plugins/zoom/src/index.js +5 -0
- package/dist/plugins/zulip/src/index.js +15 -0
- package/dist/sdk.d.ts +2 -1
- package/dist/sdk.js +1 -0
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@ export default function reddit(rl) {
|
|
|
33
33
|
});
|
|
34
34
|
// ── Post ────────────────────────────────────────────
|
|
35
35
|
rl.registerAction("post.create", {
|
|
36
|
+
access: "write",
|
|
36
37
|
description: "Submit a new post to a subreddit (requires auth)",
|
|
37
38
|
inputSchema: {
|
|
38
39
|
subreddit: { type: "string", required: true },
|
|
@@ -72,6 +73,7 @@ export default function reddit(rl) {
|
|
|
72
73
|
},
|
|
73
74
|
});
|
|
74
75
|
rl.registerAction("post.get", {
|
|
76
|
+
access: "read",
|
|
75
77
|
description: "Get a post by ID",
|
|
76
78
|
inputSchema: {
|
|
77
79
|
subreddit: { type: "string", required: true },
|
|
@@ -87,6 +89,7 @@ export default function reddit(rl) {
|
|
|
87
89
|
},
|
|
88
90
|
});
|
|
89
91
|
rl.registerAction("post.list", {
|
|
92
|
+
access: "read",
|
|
90
93
|
description: "List posts from a subreddit (no auth required for public subreddits)",
|
|
91
94
|
inputSchema: {
|
|
92
95
|
subreddit: { type: "string", required: true },
|
|
@@ -116,6 +119,7 @@ export default function reddit(rl) {
|
|
|
116
119
|
},
|
|
117
120
|
});
|
|
118
121
|
rl.registerAction("post.delete", {
|
|
122
|
+
access: "write",
|
|
119
123
|
description: "Delete a post (requires auth)",
|
|
120
124
|
inputSchema: { postId: { type: "string", required: true } },
|
|
121
125
|
async execute(input, ctx) {
|
|
@@ -127,6 +131,7 @@ export default function reddit(rl) {
|
|
|
127
131
|
},
|
|
128
132
|
});
|
|
129
133
|
rl.registerAction("post.search", {
|
|
134
|
+
access: "read",
|
|
130
135
|
description: "Search posts",
|
|
131
136
|
inputSchema: {
|
|
132
137
|
keyword: { type: "string", required: true },
|
|
@@ -161,6 +166,7 @@ export default function reddit(rl) {
|
|
|
161
166
|
});
|
|
162
167
|
// ── Comment ─────────────────────────────────────────
|
|
163
168
|
rl.registerAction("comment.create", {
|
|
169
|
+
access: "write",
|
|
164
170
|
description: "Add a comment to a post (requires auth)",
|
|
165
171
|
inputSchema: {
|
|
166
172
|
postId: { type: "string", required: true },
|
|
@@ -179,6 +185,7 @@ export default function reddit(rl) {
|
|
|
179
185
|
},
|
|
180
186
|
});
|
|
181
187
|
rl.registerAction("comment.reply", {
|
|
188
|
+
access: "write",
|
|
182
189
|
description: "Reply to a comment (requires auth)",
|
|
183
190
|
inputSchema: {
|
|
184
191
|
commentId: { type: "string", required: true },
|
|
@@ -197,6 +204,7 @@ export default function reddit(rl) {
|
|
|
197
204
|
},
|
|
198
205
|
});
|
|
199
206
|
rl.registerAction("comment.delete", {
|
|
207
|
+
access: "write",
|
|
200
208
|
description: "Delete a comment (requires auth)",
|
|
201
209
|
inputSchema: { commentId: { type: "string", required: true } },
|
|
202
210
|
async execute(input, ctx) {
|
|
@@ -209,6 +217,7 @@ export default function reddit(rl) {
|
|
|
209
217
|
});
|
|
210
218
|
// ── Subreddit ───────────────────────────────────────
|
|
211
219
|
rl.registerAction("subreddit.get", {
|
|
220
|
+
access: "read",
|
|
212
221
|
description: "Get subreddit info or rules (no auth required)",
|
|
213
222
|
inputSchema: {
|
|
214
223
|
subreddit: { type: "string", required: true },
|
|
@@ -229,6 +238,7 @@ export default function reddit(rl) {
|
|
|
229
238
|
});
|
|
230
239
|
// ── User ────────────────────────────────────────────
|
|
231
240
|
rl.registerAction("user.get", {
|
|
241
|
+
access: "read",
|
|
232
242
|
description: "Get user profile info (no auth required)",
|
|
233
243
|
inputSchema: { username: { type: "string", required: true } },
|
|
234
244
|
async execute(input, ctx) {
|
|
@@ -47,6 +47,7 @@ export default function replicate(rl) {
|
|
|
47
47
|
},
|
|
48
48
|
});
|
|
49
49
|
rl.registerAction("image.create", {
|
|
50
|
+
access: "write",
|
|
50
51
|
description: "Generate an image via Replicate. Default model is black-forest-labs/flux-dev. Writes the image(s) to disk and returns their file `path`s — not base64. Deliver each with send_file using its `path`.",
|
|
51
52
|
inputSchema: {
|
|
52
53
|
prompt: {
|
|
@@ -43,6 +43,7 @@ export default function rundeck(rl) {
|
|
|
43
43
|
},
|
|
44
44
|
});
|
|
45
45
|
rl.registerAction("job.execute", {
|
|
46
|
+
access: "write",
|
|
46
47
|
description: "Execute a Rundeck job",
|
|
47
48
|
inputSchema: {
|
|
48
49
|
jobId: { type: "string", required: true },
|
|
@@ -73,6 +74,7 @@ export default function rundeck(rl) {
|
|
|
73
74
|
},
|
|
74
75
|
});
|
|
75
76
|
rl.registerAction("job.getMetadata", {
|
|
77
|
+
access: "read",
|
|
76
78
|
description: "Get metadata for a Rundeck job",
|
|
77
79
|
inputSchema: { jobId: { type: "string", required: true } },
|
|
78
80
|
async execute(input, ctx) {
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { api, getSession, identity } from "./shared.js";
|
|
3
3
|
export function registerMetadataActions(rl) {
|
|
4
4
|
rl.registerAction("connection.test", {
|
|
5
|
+
access: "read",
|
|
5
6
|
description: "Validate Salesforce auth and return safe connection metadata",
|
|
6
7
|
inputSchema: t.Object({}),
|
|
7
8
|
async execute(_input, ctx) {
|
|
@@ -27,6 +28,7 @@ export function registerMetadataActions(rl) {
|
|
|
27
28
|
},
|
|
28
29
|
});
|
|
29
30
|
rl.registerAction("auth.identity", {
|
|
31
|
+
access: "read",
|
|
30
32
|
description: "Return the Salesforce OAuth identity for the current connection",
|
|
31
33
|
inputSchema: t.Object({}),
|
|
32
34
|
async execute(_input, ctx) {
|
|
@@ -34,6 +36,7 @@ export function registerMetadataActions(rl) {
|
|
|
34
36
|
},
|
|
35
37
|
});
|
|
36
38
|
rl.registerAction("limits.get", {
|
|
39
|
+
access: "read",
|
|
37
40
|
description: "Return Salesforce org REST API limits",
|
|
38
41
|
inputSchema: t.Object({}),
|
|
39
42
|
async execute(_input, ctx) {
|
|
@@ -41,6 +44,7 @@ export function registerMetadataActions(rl) {
|
|
|
41
44
|
},
|
|
42
45
|
});
|
|
43
46
|
rl.registerAction("metadata.objects", {
|
|
47
|
+
access: "read",
|
|
44
48
|
description: "List available Salesforce sObjects and metadata summaries",
|
|
45
49
|
inputSchema: t.Object({}),
|
|
46
50
|
async execute(_input, ctx) {
|
|
@@ -11,6 +11,7 @@ async function queryPage(ctx, endpoint, query) {
|
|
|
11
11
|
}
|
|
12
12
|
export function registerQueryActions(rl) {
|
|
13
13
|
rl.registerAction("soql.query", {
|
|
14
|
+
access: "read",
|
|
14
15
|
description: "Execute a raw SOQL query and return the first page of records",
|
|
15
16
|
inputSchema: QueryInput,
|
|
16
17
|
async execute(input, ctx) {
|
|
@@ -18,6 +19,7 @@ export function registerQueryActions(rl) {
|
|
|
18
19
|
},
|
|
19
20
|
});
|
|
20
21
|
rl.registerAction("soql.queryPage", {
|
|
22
|
+
access: "read",
|
|
21
23
|
description: "Execute a raw SOQL query and return Salesforce pagination metadata",
|
|
22
24
|
inputSchema: QueryInput,
|
|
23
25
|
async execute(input, ctx) {
|
|
@@ -25,6 +27,7 @@ export function registerQueryActions(rl) {
|
|
|
25
27
|
},
|
|
26
28
|
});
|
|
27
29
|
rl.registerAction("soql.queryAll", {
|
|
30
|
+
access: "read",
|
|
28
31
|
description: "Execute a raw SOQL query including deleted and archived records; returns the first page of records",
|
|
29
32
|
inputSchema: QueryInput,
|
|
30
33
|
async execute(input, ctx) {
|
|
@@ -32,6 +35,7 @@ export function registerQueryActions(rl) {
|
|
|
32
35
|
},
|
|
33
36
|
});
|
|
34
37
|
rl.registerAction("soql.queryAllPage", {
|
|
38
|
+
access: "read",
|
|
35
39
|
description: "Execute a raw SOQL query including deleted and archived records and return Salesforce pagination metadata",
|
|
36
40
|
inputSchema: QueryInput,
|
|
37
41
|
async execute(input, ctx) {
|
|
@@ -39,6 +43,7 @@ export function registerQueryActions(rl) {
|
|
|
39
43
|
},
|
|
40
44
|
});
|
|
41
45
|
rl.registerAction("soql.nextPage", {
|
|
46
|
+
access: "read",
|
|
42
47
|
description: "Fetch the next page from a Salesforce nextRecordsUrl returned by soql.queryPage or soql.queryAllPage",
|
|
43
48
|
inputSchema: t.Object({
|
|
44
49
|
nextRecordsUrl: t.String({
|
|
@@ -42,6 +42,7 @@ function buildQuery(sObject, input) {
|
|
|
42
42
|
function registerSObject(rl, sObject) {
|
|
43
43
|
const lower = sObject.toLowerCase();
|
|
44
44
|
rl.registerAction(`${lower}.create`, {
|
|
45
|
+
access: "write",
|
|
45
46
|
description: `Create a ${sObject}`,
|
|
46
47
|
inputSchema: t.Object({ data: Data }),
|
|
47
48
|
async execute(input, ctx) {
|
|
@@ -49,6 +50,7 @@ function registerSObject(rl, sObject) {
|
|
|
49
50
|
},
|
|
50
51
|
});
|
|
51
52
|
rl.registerAction(`${lower}.get`, {
|
|
53
|
+
access: "read",
|
|
52
54
|
description: `Get a ${sObject} by ID`,
|
|
53
55
|
inputSchema: t.Object({ id: t.String() }),
|
|
54
56
|
async execute(input, ctx) {
|
|
@@ -56,6 +58,7 @@ function registerSObject(rl, sObject) {
|
|
|
56
58
|
},
|
|
57
59
|
});
|
|
58
60
|
rl.registerAction(`${lower}.update`, {
|
|
61
|
+
access: "write",
|
|
59
62
|
description: `Update a ${sObject}`,
|
|
60
63
|
inputSchema: t.Object({ id: t.String(), data: Data }),
|
|
61
64
|
async execute(input, ctx) {
|
|
@@ -65,6 +68,7 @@ function registerSObject(rl, sObject) {
|
|
|
65
68
|
},
|
|
66
69
|
});
|
|
67
70
|
rl.registerAction(`${lower}.delete`, {
|
|
71
|
+
access: "write",
|
|
68
72
|
description: `Delete a ${sObject}`,
|
|
69
73
|
inputSchema: t.Object({ id: t.String() }),
|
|
70
74
|
async execute(input, ctx) {
|
|
@@ -73,6 +77,7 @@ function registerSObject(rl, sObject) {
|
|
|
73
77
|
},
|
|
74
78
|
});
|
|
75
79
|
rl.registerAction(`${lower}.query`, {
|
|
80
|
+
access: "read",
|
|
76
81
|
description: `Query ${sObject}s with SOQL`,
|
|
77
82
|
inputSchema: QueryInput(sObject),
|
|
78
83
|
async execute(input, ctx) {
|
|
@@ -82,6 +87,7 @@ function registerSObject(rl, sObject) {
|
|
|
82
87
|
},
|
|
83
88
|
});
|
|
84
89
|
rl.registerAction(`${lower}.queryPage`, {
|
|
90
|
+
access: "read",
|
|
85
91
|
description: `Query ${sObject}s with SOQL and return Salesforce pagination metadata`,
|
|
86
92
|
inputSchema: QueryInput(sObject),
|
|
87
93
|
async execute(input, ctx) {
|
|
@@ -91,6 +97,7 @@ function registerSObject(rl, sObject) {
|
|
|
91
97
|
},
|
|
92
98
|
});
|
|
93
99
|
rl.registerAction(`${lower}.upsert`, {
|
|
100
|
+
access: "write",
|
|
94
101
|
description: `Upsert a ${sObject} by external ID`,
|
|
95
102
|
inputSchema: t.Object({
|
|
96
103
|
externalIdField: t.String(),
|
|
@@ -109,6 +116,7 @@ export function registerStandardSObjectActions(rl) {
|
|
|
109
116
|
}
|
|
110
117
|
export function registerGenericSObjectActions(rl) {
|
|
111
118
|
rl.registerAction("sobject.create", {
|
|
119
|
+
access: "write",
|
|
112
120
|
description: "Create any sObject record",
|
|
113
121
|
inputSchema: t.Object({ sObject: t.String(), data: Data }),
|
|
114
122
|
async execute(input, ctx) {
|
|
@@ -117,6 +125,7 @@ export function registerGenericSObjectActions(rl) {
|
|
|
117
125
|
},
|
|
118
126
|
});
|
|
119
127
|
rl.registerAction("sobject.get", {
|
|
128
|
+
access: "read",
|
|
120
129
|
description: "Get any sObject record",
|
|
121
130
|
inputSchema: t.Object({ sObject: t.String(), id: t.String() }),
|
|
122
131
|
async execute(input, ctx) {
|
|
@@ -125,6 +134,7 @@ export function registerGenericSObjectActions(rl) {
|
|
|
125
134
|
},
|
|
126
135
|
});
|
|
127
136
|
rl.registerAction("sobject.update", {
|
|
137
|
+
access: "write",
|
|
128
138
|
description: "Update any sObject record",
|
|
129
139
|
inputSchema: t.Object({ sObject: t.String(), id: t.String(), data: Data }),
|
|
130
140
|
async execute(input, ctx) {
|
|
@@ -134,6 +144,7 @@ export function registerGenericSObjectActions(rl) {
|
|
|
134
144
|
},
|
|
135
145
|
});
|
|
136
146
|
rl.registerAction("sobject.delete", {
|
|
147
|
+
access: "write",
|
|
137
148
|
description: "Delete any sObject record",
|
|
138
149
|
inputSchema: t.Object({ sObject: t.String(), id: t.String() }),
|
|
139
150
|
async execute(input, ctx) {
|
|
@@ -143,6 +154,7 @@ export function registerGenericSObjectActions(rl) {
|
|
|
143
154
|
},
|
|
144
155
|
});
|
|
145
156
|
rl.registerAction("sobject.describe", {
|
|
157
|
+
access: "read",
|
|
146
158
|
description: "Describe an sObject's metadata/fields",
|
|
147
159
|
inputSchema: t.Object({ sObject: t.String() }),
|
|
148
160
|
async execute(input, ctx) {
|
|
@@ -30,6 +30,7 @@ async function api(conn, method, endpoint, body, qs) {
|
|
|
30
30
|
}
|
|
31
31
|
function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
32
32
|
rl.registerAction(`${resource}.create`, {
|
|
33
|
+
access: "write",
|
|
33
34
|
description: `Create a ${resource}`,
|
|
34
35
|
inputSchema: createSchema,
|
|
35
36
|
async execute(input, ctx) {
|
|
@@ -38,6 +39,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
38
39
|
},
|
|
39
40
|
});
|
|
40
41
|
rl.registerAction(`${resource}.get`, {
|
|
42
|
+
access: "read",
|
|
41
43
|
description: `Get a ${resource} by ID`,
|
|
42
44
|
inputSchema: { id: { type: "string", required: true } },
|
|
43
45
|
async execute(input, ctx) {
|
|
@@ -46,6 +48,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
46
48
|
},
|
|
47
49
|
});
|
|
48
50
|
rl.registerAction(`${resource}.list`, {
|
|
51
|
+
access: "read",
|
|
49
52
|
description: `Search/list ${plural}`,
|
|
50
53
|
inputSchema: {
|
|
51
54
|
limit: { type: "number", required: false },
|
|
@@ -74,6 +77,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
74
77
|
},
|
|
75
78
|
});
|
|
76
79
|
rl.registerAction(`${resource}.update`, {
|
|
80
|
+
access: "write",
|
|
77
81
|
description: `Update a ${resource}`,
|
|
78
82
|
inputSchema: {
|
|
79
83
|
id: { type: "string", required: true },
|
|
@@ -86,6 +90,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
86
90
|
},
|
|
87
91
|
});
|
|
88
92
|
rl.registerAction(`${resource}.delete`, {
|
|
93
|
+
access: "write",
|
|
89
94
|
description: `Delete a ${resource}`,
|
|
90
95
|
inputSchema: { id: { type: "string", required: true } },
|
|
91
96
|
async execute(input, ctx) {
|
|
@@ -36,6 +36,7 @@ export default function securityScorecard(rl) {
|
|
|
36
36
|
const key = (ctx) => ctx.connection.config.apiKey;
|
|
37
37
|
// ── Company ─────────────────────────────────────────
|
|
38
38
|
rl.registerAction("company.getScorecard", {
|
|
39
|
+
access: "read",
|
|
39
40
|
description: "Get a company's scorecard by domain",
|
|
40
41
|
inputSchema: { domain: { type: "string", required: true } },
|
|
41
42
|
async execute(input, ctx) {
|
|
@@ -43,6 +44,7 @@ export default function securityScorecard(rl) {
|
|
|
43
44
|
},
|
|
44
45
|
});
|
|
45
46
|
rl.registerAction("company.getFactors", {
|
|
47
|
+
access: "read",
|
|
46
48
|
description: "Get factor scores for a company",
|
|
47
49
|
inputSchema: {
|
|
48
50
|
domain: { type: "string", required: true },
|
|
@@ -58,6 +60,7 @@ export default function securityScorecard(rl) {
|
|
|
58
60
|
},
|
|
59
61
|
});
|
|
60
62
|
rl.registerAction("company.getHistoricalScore", {
|
|
63
|
+
access: "read",
|
|
61
64
|
description: "Get historical score data for a company",
|
|
62
65
|
inputSchema: {
|
|
63
66
|
domain: { type: "string", required: true },
|
|
@@ -88,6 +91,7 @@ export default function securityScorecard(rl) {
|
|
|
88
91
|
},
|
|
89
92
|
});
|
|
90
93
|
rl.registerAction("company.getScorePlan", {
|
|
94
|
+
access: "read",
|
|
91
95
|
description: "Get score improvement plan for a target score",
|
|
92
96
|
inputSchema: {
|
|
93
97
|
domain: { type: "string", required: true },
|
|
@@ -101,6 +105,7 @@ export default function securityScorecard(rl) {
|
|
|
101
105
|
});
|
|
102
106
|
// ── Industry ────────────────────────────────────────
|
|
103
107
|
rl.registerAction("industry.getScore", {
|
|
108
|
+
access: "read",
|
|
104
109
|
description: "Get an industry's average score",
|
|
105
110
|
inputSchema: { industry: { type: "string", required: true } },
|
|
106
111
|
async execute(input, ctx) {
|
|
@@ -109,6 +114,7 @@ export default function securityScorecard(rl) {
|
|
|
109
114
|
});
|
|
110
115
|
// ── Portfolio ───────────────────────────────────────
|
|
111
116
|
rl.registerAction("portfolio.create", {
|
|
117
|
+
access: "write",
|
|
112
118
|
description: "Create a portfolio",
|
|
113
119
|
inputSchema: {
|
|
114
120
|
name: { type: "string", required: true },
|
|
@@ -129,6 +135,7 @@ export default function securityScorecard(rl) {
|
|
|
129
135
|
},
|
|
130
136
|
});
|
|
131
137
|
rl.registerAction("portfolio.list", {
|
|
138
|
+
access: "read",
|
|
132
139
|
description: "List all portfolios",
|
|
133
140
|
inputSchema: { limit: { type: "number", required: false } },
|
|
134
141
|
async execute(input, ctx) {
|
|
@@ -140,6 +147,7 @@ export default function securityScorecard(rl) {
|
|
|
140
147
|
},
|
|
141
148
|
});
|
|
142
149
|
rl.registerAction("portfolio.delete", {
|
|
150
|
+
access: "write",
|
|
143
151
|
description: "Delete a portfolio",
|
|
144
152
|
inputSchema: { portfolioId: { type: "string", required: true } },
|
|
145
153
|
async execute(input, ctx) {
|
|
@@ -148,6 +156,7 @@ export default function securityScorecard(rl) {
|
|
|
148
156
|
},
|
|
149
157
|
});
|
|
150
158
|
rl.registerAction("portfolioCompany.add", {
|
|
159
|
+
access: "write",
|
|
151
160
|
description: "Add a company to a portfolio",
|
|
152
161
|
inputSchema: {
|
|
153
162
|
portfolioId: { type: "string", required: true },
|
|
@@ -159,6 +168,7 @@ export default function securityScorecard(rl) {
|
|
|
159
168
|
},
|
|
160
169
|
});
|
|
161
170
|
rl.registerAction("portfolioCompany.remove", {
|
|
171
|
+
access: "write",
|
|
162
172
|
description: "Remove a company from a portfolio",
|
|
163
173
|
inputSchema: {
|
|
164
174
|
portfolioId: { type: "string", required: true },
|
|
@@ -171,6 +181,7 @@ export default function securityScorecard(rl) {
|
|
|
171
181
|
},
|
|
172
182
|
});
|
|
173
183
|
rl.registerAction("portfolioCompany.list", {
|
|
184
|
+
access: "read",
|
|
174
185
|
description: "List companies in a portfolio",
|
|
175
186
|
inputSchema: {
|
|
176
187
|
portfolioId: { type: "string", required: true },
|
|
@@ -187,6 +198,7 @@ export default function securityScorecard(rl) {
|
|
|
187
198
|
});
|
|
188
199
|
// ── Invite ──────────────────────────────────────────
|
|
189
200
|
rl.registerAction("invite.create", {
|
|
201
|
+
access: "write",
|
|
190
202
|
description: "Send an invitation",
|
|
191
203
|
inputSchema: {
|
|
192
204
|
email: { type: "string", required: true },
|
|
@@ -206,6 +218,7 @@ export default function securityScorecard(rl) {
|
|
|
206
218
|
});
|
|
207
219
|
// ── Report ──────────────────────────────────────────
|
|
208
220
|
rl.registerAction("report.generate", {
|
|
221
|
+
access: "write",
|
|
209
222
|
description: "Generate a report",
|
|
210
223
|
inputSchema: {
|
|
211
224
|
reportType: {
|
|
@@ -245,6 +258,7 @@ export default function securityScorecard(rl) {
|
|
|
245
258
|
},
|
|
246
259
|
});
|
|
247
260
|
rl.registerAction("report.list", {
|
|
261
|
+
access: "read",
|
|
248
262
|
description: "List recent reports",
|
|
249
263
|
inputSchema: { limit: { type: "number", required: false } },
|
|
250
264
|
async execute(input, ctx) {
|
|
@@ -25,6 +25,7 @@ export default function segment(rl) {
|
|
|
25
25
|
});
|
|
26
26
|
const key = (ctx) => ctx.connection.config.writeKey;
|
|
27
27
|
rl.registerAction("identify.create", {
|
|
28
|
+
access: "write",
|
|
28
29
|
description: "Identify a user (tie user to traits)",
|
|
29
30
|
inputSchema: {
|
|
30
31
|
userId: {
|
|
@@ -58,6 +59,7 @@ export default function segment(rl) {
|
|
|
58
59
|
},
|
|
59
60
|
});
|
|
60
61
|
rl.registerAction("track.event", {
|
|
62
|
+
access: "write",
|
|
61
63
|
description: "Track an event",
|
|
62
64
|
inputSchema: {
|
|
63
65
|
event: { type: "string", required: true, description: "Event name" },
|
|
@@ -88,6 +90,7 @@ export default function segment(rl) {
|
|
|
88
90
|
},
|
|
89
91
|
});
|
|
90
92
|
rl.registerAction("track.page", {
|
|
93
|
+
access: "write",
|
|
91
94
|
description: "Track a page view",
|
|
92
95
|
inputSchema: {
|
|
93
96
|
name: { type: "string", required: true, description: "Page name" },
|
|
@@ -114,6 +117,7 @@ export default function segment(rl) {
|
|
|
114
117
|
},
|
|
115
118
|
});
|
|
116
119
|
rl.registerAction("group.add", {
|
|
120
|
+
access: "write",
|
|
117
121
|
description: "Associate a user with a group",
|
|
118
122
|
inputSchema: {
|
|
119
123
|
groupId: { type: "string", required: true },
|
|
@@ -40,6 +40,7 @@ export default function sendgrid(rl) {
|
|
|
40
40
|
const key = (ctx) => ctx.connection.config.apiKey;
|
|
41
41
|
// ── Mail ────────────────────────────────────────────
|
|
42
42
|
rl.registerAction("mail.send", {
|
|
43
|
+
access: "write",
|
|
43
44
|
description: "Send an email via SendGrid",
|
|
44
45
|
inputSchema: {
|
|
45
46
|
to: {
|
|
@@ -117,6 +118,7 @@ export default function sendgrid(rl) {
|
|
|
117
118
|
});
|
|
118
119
|
// ── Contact ─────────────────────────────────────────
|
|
119
120
|
rl.registerAction("contact.get", {
|
|
121
|
+
access: "read",
|
|
120
122
|
description: "Get a contact by ID or email",
|
|
121
123
|
inputSchema: {
|
|
122
124
|
contactId: { type: "string", required: false },
|
|
@@ -138,6 +140,7 @@ export default function sendgrid(rl) {
|
|
|
138
140
|
},
|
|
139
141
|
});
|
|
140
142
|
rl.registerAction("contact.list", {
|
|
143
|
+
access: "read",
|
|
141
144
|
description: "List contacts (optionally with SGQL query)",
|
|
142
145
|
inputSchema: {
|
|
143
146
|
query: {
|
|
@@ -166,6 +169,7 @@ export default function sendgrid(rl) {
|
|
|
166
169
|
},
|
|
167
170
|
});
|
|
168
171
|
rl.registerAction("contact.upsert", {
|
|
172
|
+
access: "write",
|
|
169
173
|
description: "Create or update contacts",
|
|
170
174
|
inputSchema: {
|
|
171
175
|
contacts: {
|
|
@@ -189,6 +193,7 @@ export default function sendgrid(rl) {
|
|
|
189
193
|
},
|
|
190
194
|
});
|
|
191
195
|
rl.registerAction("contact.delete", {
|
|
196
|
+
access: "write",
|
|
192
197
|
description: "Delete contacts by IDs",
|
|
193
198
|
inputSchema: {
|
|
194
199
|
ids: {
|
|
@@ -205,6 +210,7 @@ export default function sendgrid(rl) {
|
|
|
205
210
|
});
|
|
206
211
|
// ── List ────────────────────────────────────────────
|
|
207
212
|
rl.registerAction("list.create", {
|
|
213
|
+
access: "write",
|
|
208
214
|
description: "Create a contact list",
|
|
209
215
|
inputSchema: { name: { type: "string", required: true } },
|
|
210
216
|
async execute(input, ctx) {
|
|
@@ -215,6 +221,7 @@ export default function sendgrid(rl) {
|
|
|
215
221
|
},
|
|
216
222
|
});
|
|
217
223
|
rl.registerAction("list.get", {
|
|
224
|
+
access: "read",
|
|
218
225
|
description: "Get a list by ID",
|
|
219
226
|
inputSchema: { listId: { type: "string", required: true } },
|
|
220
227
|
async execute(input, ctx) {
|
|
@@ -223,6 +230,7 @@ export default function sendgrid(rl) {
|
|
|
223
230
|
},
|
|
224
231
|
});
|
|
225
232
|
rl.registerAction("list.list", {
|
|
233
|
+
access: "read",
|
|
226
234
|
description: "List all contact lists",
|
|
227
235
|
inputSchema: { limit: { type: "number", required: false } },
|
|
228
236
|
async execute(input, ctx) {
|
|
@@ -235,6 +243,7 @@ export default function sendgrid(rl) {
|
|
|
235
243
|
},
|
|
236
244
|
});
|
|
237
245
|
rl.registerAction("list.update", {
|
|
246
|
+
access: "write",
|
|
238
247
|
description: "Update a list name",
|
|
239
248
|
inputSchema: {
|
|
240
249
|
listId: { type: "string", required: true },
|
|
@@ -247,6 +256,7 @@ export default function sendgrid(rl) {
|
|
|
247
256
|
},
|
|
248
257
|
});
|
|
249
258
|
rl.registerAction("list.delete", {
|
|
259
|
+
access: "write",
|
|
250
260
|
description: "Delete a list",
|
|
251
261
|
inputSchema: {
|
|
252
262
|
listId: { type: "string", required: true },
|
|
@@ -38,6 +38,7 @@ export default function sendy(rl) {
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
rl.registerAction("campaign.create", {
|
|
41
|
+
access: "write",
|
|
41
42
|
description: "Create (and optionally send) an email campaign",
|
|
42
43
|
inputSchema: {
|
|
43
44
|
fromName: { type: "string", required: true },
|
|
@@ -97,6 +98,7 @@ export default function sendy(rl) {
|
|
|
97
98
|
},
|
|
98
99
|
});
|
|
99
100
|
rl.registerAction("subscriber.add", {
|
|
101
|
+
access: "write",
|
|
100
102
|
description: "Add a subscriber to a list",
|
|
101
103
|
inputSchema: {
|
|
102
104
|
email: { type: "string", required: true },
|
|
@@ -115,6 +117,7 @@ export default function sendy(rl) {
|
|
|
115
117
|
},
|
|
116
118
|
});
|
|
117
119
|
rl.registerAction("subscriber.count", {
|
|
120
|
+
access: "read",
|
|
118
121
|
description: "Get active subscriber count for a list",
|
|
119
122
|
inputSchema: { listId: { type: "string", required: true } },
|
|
120
123
|
async execute(input, ctx) {
|
|
@@ -126,6 +129,7 @@ export default function sendy(rl) {
|
|
|
126
129
|
},
|
|
127
130
|
});
|
|
128
131
|
rl.registerAction("subscriber.delete", {
|
|
132
|
+
access: "write",
|
|
129
133
|
description: "Delete a subscriber from a list",
|
|
130
134
|
inputSchema: {
|
|
131
135
|
email: { type: "string", required: true },
|
|
@@ -140,6 +144,7 @@ export default function sendy(rl) {
|
|
|
140
144
|
},
|
|
141
145
|
});
|
|
142
146
|
rl.registerAction("subscriber.unsubscribe", {
|
|
147
|
+
access: "write",
|
|
143
148
|
description: "Unsubscribe an email from a list",
|
|
144
149
|
inputSchema: {
|
|
145
150
|
email: { type: "string", required: true },
|
|
@@ -157,6 +162,7 @@ export default function sendy(rl) {
|
|
|
157
162
|
},
|
|
158
163
|
});
|
|
159
164
|
rl.registerAction("subscriber.status", {
|
|
165
|
+
access: "read",
|
|
160
166
|
description: "Get subscription status of an email",
|
|
161
167
|
inputSchema: {
|
|
162
168
|
email: { type: "string", required: true },
|