@apteva/integrations 0.1.1 → 0.2.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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { AppTemplate, AppAuthConfig, AuthType, OAuthConfig, AppToolTemplate, Connection, ConnectionCredentials, LocalTriggerConfig, GeneratedMcpServer, GeneratedMcpTool, IntegrationsStorage, } from "./types.js";
1
+ export type { AppTemplate, AppAuthConfig, AuthType, OAuthConfig, CredentialField, AppToolTemplate, Connection, ConnectionCredentials, LocalTriggerConfig, GeneratedMcpServer, GeneratedMcpTool, IntegrationsStorage, } from "./types.js";
2
2
  export { loadAppTemplates, getAppTemplate, listAppSlugs, listApps, } from "./apps/index.js";
3
3
  export { executeTool } from "./http-executor.js";
4
4
  export type { ExecuteToolOptions, ExecuteToolResult } from "./http-executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,wBAAwB;AACxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC;AAQpB,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qCAAqC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,iCAAiC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,wBAAwB;AACxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC;AAQpB,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qCAAqC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,iCAAiC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -46,6 +46,21 @@ function generateMcpTool(app, tool, connection) {
46
46
  // Build clean input schema without path params (those get resolved in URL)
47
47
  const pathParams = extractPathParams(tool.path);
48
48
  const cleanSchema = removePathParamsFromSchema(tool.input_schema, pathParams);
49
+ // Build default_body from credential fields that map to tool input properties
50
+ // e.g. Pushover's user_key credential → "user" field in send_notification
51
+ let defaultBody;
52
+ if (app.auth.credential_fields && tool.method !== "GET") {
53
+ const props = tool.input_schema?.properties || {};
54
+ for (const cf of app.auth.credential_fields) {
55
+ // Check if the credential field name maps to a tool input (with or without _key suffix)
56
+ const baseName = cf.name.replace(/_key$/, "");
57
+ if (props[baseName] && connection.credentials.fields?.[cf.name]) {
58
+ if (!defaultBody)
59
+ defaultBody = {};
60
+ defaultBody[baseName] = connection.credentials.fields[cf.name];
61
+ }
62
+ }
63
+ }
49
64
  return {
50
65
  name: `${app.slug}_${tool.name}`,
51
66
  description: `[${app.name}] ${tool.description}`,
@@ -56,26 +71,31 @@ function generateMcpTool(app, tool, connection) {
56
71
  url,
57
72
  headers,
58
73
  body_template: bodyTemplate,
74
+ ...(defaultBody ? { default_body: defaultBody } : {}),
59
75
  },
60
76
  };
61
77
  }
62
78
  // ─── Helpers ───
63
79
  function resolveCredentialTemplate(template, credentials) {
64
80
  return template.replace(/\{\{(\w+)\}\}/g, (_match, key) => {
81
+ // Check custom fields first (most specific)
82
+ if (credentials.fields?.[key])
83
+ return credentials.fields[key];
65
84
  switch (key) {
66
85
  case "token":
67
- return (credentials.access_token ||
86
+ return (credentials.fields?.token ||
87
+ credentials.access_token ||
68
88
  credentials.bearer_token ||
69
89
  credentials.api_key ||
70
90
  "");
71
91
  case "api_key":
72
- return credentials.api_key || "";
92
+ return credentials.fields?.api_key || credentials.api_key || "";
73
93
  case "username":
74
94
  return credentials.username || "";
75
95
  case "password":
76
96
  return credentials.password || "";
77
97
  default:
78
- return credentials.fields?.[key] || "";
98
+ return "";
79
99
  }
80
100
  });
81
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-generator.js","sourceRoot":"","sources":["../src/mcp-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-generator.js","sourceRoot":"","sources":["../src/mcp-generator.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -13,6 +13,14 @@ export interface AppAuthConfig {
13
13
  oauth2?: OAuthConfig;
14
14
  headers?: Record<string, string>;
15
15
  query_params?: Record<string, string>;
16
+ credential_fields?: CredentialField[];
17
+ }
18
+ export interface CredentialField {
19
+ name: string;
20
+ label: string;
21
+ description?: string;
22
+ required?: boolean;
23
+ type?: "password" | "text";
16
24
  }
17
25
  export type AuthType = "api_key" | "bearer" | "basic" | "oauth2";
18
26
  export interface OAuthConfig {
@@ -21,6 +29,8 @@ export interface OAuthConfig {
21
29
  scopes: string[];
22
30
  client_id_required: boolean;
23
31
  pkce: boolean;
32
+ setup_url?: string;
33
+ setup_steps?: string[];
24
34
  }
25
35
  export interface AppToolTemplate {
26
36
  name: string;
@@ -82,6 +92,7 @@ export interface GeneratedMcpTool {
82
92
  url: string;
83
93
  headers: Record<string, string>;
84
94
  body_template?: string;
95
+ default_body?: Record<string, string>;
85
96
  };
86
97
  }
87
98
  export interface IntegrationsStorage {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apteva/integrations",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Local integrations, connections, and webhooks for Apteva. Self-contained app templates, OAuth engine, and trigger provider.",
5
5
  "author": "Apteva <hello@apteva.com>",
6
6
  "license": "Elastic-2.0",
@@ -13,8 +13,18 @@
13
13
  "token_url": "https://github.com/login/oauth/access_token",
14
14
  "scopes": ["repo", "read:user", "read:org"],
15
15
  "client_id_required": true,
16
- "pkce": false
17
- }
16
+ "pkce": false,
17
+ "setup_url": "https://github.com/settings/developers",
18
+ "setup_steps": [
19
+ "Go to GitHub Settings > Developer settings > OAuth Apps",
20
+ "Click 'New OAuth App'",
21
+ "Set the callback URL to your Apteva instance: {callback_url}",
22
+ "Copy the Client ID and generate a Client Secret"
23
+ ]
24
+ },
25
+ "credential_fields": [
26
+ { "name": "token", "label": "Personal Access Token", "description": "GitHub PAT with repo and user scopes (Settings > Developer settings > Tokens)" }
27
+ ]
18
28
  },
19
29
  "tools": [
20
30
  {
@@ -13,7 +13,15 @@
13
13
  "token_url": "https://oauth2.googleapis.com/token",
14
14
  "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send"],
15
15
  "client_id_required": true,
16
- "pkce": false
16
+ "pkce": false,
17
+ "setup_url": "https://console.cloud.google.com/apis/credentials",
18
+ "setup_steps": [
19
+ "Go to Google Cloud Console > APIs & Services > Credentials",
20
+ "Create an OAuth 2.0 Client ID (Web application type)",
21
+ "Add the authorized redirect URI: {callback_url}",
22
+ "Enable the Gmail API under APIs & Services > Library",
23
+ "Copy the Client ID and Client Secret"
24
+ ]
17
25
  }
18
26
  },
19
27
  "tools": [
@@ -13,7 +13,15 @@
13
13
  "token_url": "https://oauth2.googleapis.com/token",
14
14
  "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events"],
15
15
  "client_id_required": true,
16
- "pkce": false
16
+ "pkce": false,
17
+ "setup_url": "https://console.cloud.google.com/apis/credentials",
18
+ "setup_steps": [
19
+ "Go to Google Cloud Console > APIs & Services > Credentials",
20
+ "Create an OAuth 2.0 Client ID (Web application type)",
21
+ "Add the authorized redirect URI: {callback_url}",
22
+ "Enable the Google Calendar API under APIs & Services > Library",
23
+ "Copy the Client ID and Client Secret"
24
+ ]
17
25
  }
18
26
  },
19
27
  "tools": [
@@ -13,8 +13,18 @@
13
13
  "token_url": "https://api.linear.app/oauth/token",
14
14
  "scopes": ["read", "write", "issues:create"],
15
15
  "client_id_required": true,
16
- "pkce": false
17
- }
16
+ "pkce": false,
17
+ "setup_url": "https://linear.app/settings/api",
18
+ "setup_steps": [
19
+ "Go to Linear Settings > API > OAuth Applications",
20
+ "Create a new OAuth application",
21
+ "Set the callback URL to: {callback_url}",
22
+ "Copy the Client ID and Client Secret"
23
+ ]
24
+ },
25
+ "credential_fields": [
26
+ { "name": "token", "label": "API Key", "description": "Linear personal API key (lin_api_...)" }
27
+ ]
18
28
  },
19
29
  "tools": [
20
30
  {
@@ -13,8 +13,18 @@
13
13
  "token_url": "https://api.notion.com/v1/oauth/token",
14
14
  "scopes": [],
15
15
  "client_id_required": true,
16
- "pkce": false
17
- }
16
+ "pkce": false,
17
+ "setup_url": "https://www.notion.so/my-integrations",
18
+ "setup_steps": [
19
+ "Go to notion.so/my-integrations and click 'New integration'",
20
+ "Select 'Public' type for OAuth (or use an Internal integration token instead)",
21
+ "Set the redirect URI to: {callback_url}",
22
+ "Copy the OAuth client ID and client secret"
23
+ ]
24
+ },
25
+ "credential_fields": [
26
+ { "name": "token", "label": "Integration Token", "description": "Notion internal integration token (secret_...)" }
27
+ ]
18
28
  },
19
29
  "tools": [
20
30
  {
@@ -7,26 +7,30 @@
7
7
  "base_url": "https://api.pushover.net/1",
8
8
  "auth": {
9
9
  "types": ["api_key"],
10
- "query_params": { "token": "{{api_key}}" }
10
+ "query_params": { "token": "{{app_token}}" },
11
+ "credential_fields": [
12
+ { "name": "app_token", "label": "Application Token", "description": "Your Pushover application API token" },
13
+ { "name": "user_key", "label": "User/Group Key", "description": "Your Pushover user or group key (default recipient)" }
14
+ ]
11
15
  },
12
16
  "tools": [
13
17
  {
14
18
  "name": "send_notification",
15
- "description": "Send a push notification to a user or group",
19
+ "description": "Send a push notification. The user_key from your connection is used automatically.",
16
20
  "method": "POST",
17
21
  "path": "/messages.json",
18
22
  "input_schema": {
19
23
  "type": "object",
20
24
  "properties": {
21
- "user": { "type": "string", "description": "User or group key to send the notification to" },
22
25
  "message": { "type": "string", "description": "Notification message body" },
23
26
  "title": { "type": "string", "description": "Notification title" },
27
+ "user": { "type": "string", "description": "Override recipient user/group key (uses stored key if omitted)" },
24
28
  "priority": { "type": "number", "description": "Priority: -2 (lowest) to 2 (emergency)", "default": 0 },
25
29
  "sound": { "type": "string", "description": "Sound name (e.g. pushover, bike, bugle)" },
26
30
  "url": { "type": "string", "description": "Supplementary URL to show with the message" },
27
31
  "url_title": { "type": "string", "description": "Title for the supplementary URL" }
28
32
  },
29
- "required": ["user", "message"]
33
+ "required": ["message"]
30
34
  }
31
35
  },
32
36
  {
@@ -7,7 +7,10 @@
7
7
  "base_url": "https://api.sendgrid.com/v3",
8
8
  "auth": {
9
9
  "types": ["bearer"],
10
- "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" }
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
11
+ "credential_fields": [
12
+ { "name": "token", "label": "API Key", "description": "SendGrid API key (SG.xxx)" }
13
+ ]
11
14
  },
12
15
  "tools": [
13
16
  {
@@ -13,8 +13,18 @@
13
13
  "token_url": "https://slack.com/api/oauth.v2.access",
14
14
  "scopes": ["chat:write", "channels:read", "channels:history", "users:read"],
15
15
  "client_id_required": true,
16
- "pkce": false
17
- }
16
+ "pkce": false,
17
+ "setup_url": "https://api.slack.com/apps",
18
+ "setup_steps": [
19
+ "Go to api.slack.com/apps and click 'Create New App'",
20
+ "Choose 'From scratch', name your app, and select your workspace",
21
+ "Under OAuth & Permissions, add the redirect URL: {callback_url}",
22
+ "Copy the Client ID and Client Secret from Basic Information"
23
+ ]
24
+ },
25
+ "credential_fields": [
26
+ { "name": "token", "label": "Bot Token", "description": "Slack Bot User OAuth Token (xoxb-...)" }
27
+ ]
18
28
  },
19
29
  "tools": [
20
30
  {
@@ -7,7 +7,10 @@
7
7
  "base_url": "https://api.stripe.com/v1",
8
8
  "auth": {
9
9
  "types": ["bearer"],
10
- "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/x-www-form-urlencoded" }
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/x-www-form-urlencoded" },
11
+ "credential_fields": [
12
+ { "name": "token", "label": "Secret Key", "description": "Stripe secret key (sk_live_... or sk_test_...)" }
13
+ ]
11
14
  },
12
15
  "tools": [
13
16
  {