@apteva/integrations 0.2.1 → 0.2.3
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/package.json +1 -1
- package/src/apps/github.json +1 -1
- package/src/apps/omnikit-storage.json +183 -0
- package/src/apps/slack.json +1 -1
- package/src/apps/socialcast.json +183 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apteva/integrations",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
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",
|
package/src/apps/github.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"slug": "github",
|
|
3
3
|
"name": "GitHub",
|
|
4
4
|
"description": "Code hosting, issues, pull requests, and repository management",
|
|
5
|
-
"logo": "https://
|
|
5
|
+
"logo": "https://github.githubassets.com/favicons/favicon.svg",
|
|
6
6
|
"categories": ["developer-tools", "version-control"],
|
|
7
7
|
"base_url": "https://api.github.com",
|
|
8
8
|
"auth": {
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "omnikit-storage",
|
|
3
|
+
"name": "OmniKit Storage",
|
|
4
|
+
"description": "File storage and management with buckets, folders, uploads, and search",
|
|
5
|
+
"logo": "https://cdn.omnikit.co/cdn/project-10/public/10_1770556267491_eecb0n/603050903_10162713420734412_6016628635295692734_n.jpg",
|
|
6
|
+
"categories": ["storage", "files", "media"],
|
|
7
|
+
"base_url": "https://api.omnikit.co/storage",
|
|
8
|
+
"auth": {
|
|
9
|
+
"types": ["api_key"],
|
|
10
|
+
"headers": { "X-API-Key": "{{api_key}}" },
|
|
11
|
+
"credential_fields": [
|
|
12
|
+
{ "name": "api_key", "label": "OmniKit API Key", "description": "Your OmniKit API key (starts with 'okt_')" }
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"tools": [
|
|
16
|
+
{
|
|
17
|
+
"name": "list_files",
|
|
18
|
+
"description": "List files with filtering, sorting, and pagination",
|
|
19
|
+
"method": "GET",
|
|
20
|
+
"path": "/files",
|
|
21
|
+
"input_schema": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"bucket_id": { "type": "integer", "description": "Filter by storage bucket" },
|
|
25
|
+
"folder_id": { "type": "integer", "description": "Filter by folder" },
|
|
26
|
+
"file_type": { "type": "string", "enum": ["image", "video", "audio", "document", "archive", "other"], "description": "Filter by file type" },
|
|
27
|
+
"search": { "type": "string", "description": "Search in file names and descriptions" },
|
|
28
|
+
"access_level": { "type": "string", "enum": ["private", "public"], "description": "Filter by access level" },
|
|
29
|
+
"limit": { "type": "integer", "default": 50, "description": "Number of files to return" },
|
|
30
|
+
"offset": { "type": "integer", "default": 0, "description": "Pagination offset" },
|
|
31
|
+
"sort_by": { "type": "string", "enum": ["name", "size", "created_at", "updated_at"], "default": "created_at", "description": "Sort field" },
|
|
32
|
+
"sort_order": { "type": "string", "enum": ["asc", "desc"], "default": "desc", "description": "Sort direction" }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "search_files",
|
|
38
|
+
"description": "Search and filter files with advanced options including content rating, format, dimensions, and folder search",
|
|
39
|
+
"method": "GET",
|
|
40
|
+
"path": "/search",
|
|
41
|
+
"input_schema": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"search": { "type": "string", "description": "Search in file names, descriptions, and tags" },
|
|
45
|
+
"folder": { "type": "string", "description": "Search within a folder by name, path, or ID" },
|
|
46
|
+
"file_type": { "type": "string", "enum": ["image", "video", "audio", "document", "archive", "other"], "description": "Filter by file type" },
|
|
47
|
+
"extension": { "type": "string", "description": "Filter by file extension (e.g. jpg, pdf, mp4)" },
|
|
48
|
+
"format": { "type": "string", "enum": ["portrait", "landscape", "square"], "description": "Filter by aspect ratio" },
|
|
49
|
+
"sort_by": { "type": "string", "enum": ["name", "size_bytes", "created_at", "uploaded_at", "random"], "default": "created_at", "description": "Sort field" },
|
|
50
|
+
"sort_order": { "type": "string", "enum": ["asc", "desc"], "default": "desc" },
|
|
51
|
+
"limit": { "type": "integer", "default": 50, "description": "Number of files to return" },
|
|
52
|
+
"offset": { "type": "integer", "default": 0, "description": "Pagination offset" }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "get_file",
|
|
58
|
+
"description": "Get detailed file info including optional transcripts and thumbnails",
|
|
59
|
+
"method": "GET",
|
|
60
|
+
"path": "/files/{{id}}",
|
|
61
|
+
"input_schema": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"properties": {
|
|
64
|
+
"id": { "type": "integer", "description": "File ID" },
|
|
65
|
+
"include_transcripts": { "type": "boolean", "default": false, "description": "Include transcript metadata" },
|
|
66
|
+
"include_transcript_segments": { "type": "boolean", "default": false, "description": "Include transcript segments with timecodes" },
|
|
67
|
+
"include_thumbnails": { "type": "boolean", "default": false, "description": "Include thumbnail URLs" }
|
|
68
|
+
},
|
|
69
|
+
"required": ["id"]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "upload_file",
|
|
74
|
+
"description": "Upload a file via base64 data or a public URL",
|
|
75
|
+
"method": "POST",
|
|
76
|
+
"path": "/upload",
|
|
77
|
+
"input_schema": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"file_name": { "type": "string", "description": "File name with extension" },
|
|
81
|
+
"source_url": { "type": "string", "description": "Public URL to fetch the file from" },
|
|
82
|
+
"file_data": { "type": "string", "description": "Base64-encoded file data (use source_url instead if possible)" },
|
|
83
|
+
"folder_id": { "type": "string", "description": "Folder ID to store file in" },
|
|
84
|
+
"description": { "type": "string", "description": "File description" },
|
|
85
|
+
"tags": { "type": "array", "items": { "type": "string" }, "description": "Tags for organizing" },
|
|
86
|
+
"access_level": { "type": "string", "enum": ["private", "public"], "default": "public", "description": "Access level" }
|
|
87
|
+
},
|
|
88
|
+
"required": ["file_name"]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "update_file",
|
|
93
|
+
"description": "Update file metadata, tags, or move to a different folder",
|
|
94
|
+
"method": "PUT",
|
|
95
|
+
"path": "/files/{{id}}",
|
|
96
|
+
"input_schema": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"properties": {
|
|
99
|
+
"id": { "type": "integer", "description": "File ID to update" },
|
|
100
|
+
"name": { "type": "string", "description": "New file name" },
|
|
101
|
+
"description": { "type": "string", "description": "New description" },
|
|
102
|
+
"folder_id": { "type": "integer", "description": "Move to different folder" },
|
|
103
|
+
"tags": { "type": "array", "items": { "type": "string" }, "description": "Update tags" },
|
|
104
|
+
"access_level": { "type": "string", "enum": ["private", "public"], "description": "Update access level" }
|
|
105
|
+
},
|
|
106
|
+
"required": ["id"]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "delete_file",
|
|
111
|
+
"description": "Delete a file from storage",
|
|
112
|
+
"method": "DELETE",
|
|
113
|
+
"path": "/files/{{id}}",
|
|
114
|
+
"input_schema": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"properties": {
|
|
117
|
+
"id": { "type": "integer", "description": "File ID to delete" },
|
|
118
|
+
"force": { "type": "boolean", "default": false, "description": "Force delete without trash" }
|
|
119
|
+
},
|
|
120
|
+
"required": ["id"]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "list_folders",
|
|
125
|
+
"description": "List folders in a bucket or parent folder",
|
|
126
|
+
"method": "GET",
|
|
127
|
+
"path": "/folders",
|
|
128
|
+
"input_schema": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"properties": {
|
|
131
|
+
"parent_id": { "type": "integer", "description": "Parent folder ID (null for root)" },
|
|
132
|
+
"bucket_id": { "type": "integer", "description": "Storage bucket ID" },
|
|
133
|
+
"include_file_count": { "type": "boolean", "default": false, "description": "Include file count per folder" },
|
|
134
|
+
"search": { "type": "string", "description": "Search folder names" },
|
|
135
|
+
"limit": { "type": "integer", "default": 100, "description": "Number of folders to return" }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "create_folder",
|
|
141
|
+
"description": "Create a new folder for organizing files",
|
|
142
|
+
"method": "POST",
|
|
143
|
+
"path": "/folders",
|
|
144
|
+
"input_schema": {
|
|
145
|
+
"type": "object",
|
|
146
|
+
"properties": {
|
|
147
|
+
"name": { "type": "string", "description": "Folder name" },
|
|
148
|
+
"parent_id": { "type": "integer", "description": "Parent folder ID (for nested folders)" },
|
|
149
|
+
"description": { "type": "string", "description": "Folder description" },
|
|
150
|
+
"access_level": { "type": "string", "enum": ["private", "public"], "default": "private", "description": "Access level" }
|
|
151
|
+
},
|
|
152
|
+
"required": ["name"]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "list_buckets",
|
|
157
|
+
"description": "List all storage buckets with optional statistics",
|
|
158
|
+
"method": "GET",
|
|
159
|
+
"path": "/buckets",
|
|
160
|
+
"input_schema": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"properties": {
|
|
163
|
+
"include_stats": { "type": "boolean", "default": false, "description": "Include storage statistics" }
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "create_bucket",
|
|
169
|
+
"description": "Create a new storage bucket",
|
|
170
|
+
"method": "POST",
|
|
171
|
+
"path": "/buckets",
|
|
172
|
+
"input_schema": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"properties": {
|
|
175
|
+
"name": { "type": "string", "description": "Bucket name (must be unique)" },
|
|
176
|
+
"region": { "type": "string", "default": "us-east-1", "description": "Storage region" },
|
|
177
|
+
"is_default": { "type": "boolean", "default": false, "description": "Set as default bucket" }
|
|
178
|
+
},
|
|
179
|
+
"required": ["name"]
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|
package/src/apps/slack.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"slug": "slack",
|
|
3
3
|
"name": "Slack",
|
|
4
4
|
"description": "Team messaging, channels, and workspace management",
|
|
5
|
-
"logo": "https://
|
|
5
|
+
"logo": "https://a.slack-edge.com/80588/marketing/img/icons/icon_slack_hash_colored.png",
|
|
6
6
|
"categories": ["communication", "productivity"],
|
|
7
7
|
"base_url": "https://slack.com/api",
|
|
8
8
|
"auth": {
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "socialcast",
|
|
3
|
+
"name": "SocialCast",
|
|
4
|
+
"description": "Unified social media posting — publish to Twitter, Instagram, Facebook, LinkedIn, TikTok, YouTube, Reddit, Pinterest, and Telegram simultaneously",
|
|
5
|
+
"logo": "https://socialcast.dev/favicon-192.png",
|
|
6
|
+
"categories": ["social-media", "marketing", "communication"],
|
|
7
|
+
"base_url": "https://api.socialcast.dev",
|
|
8
|
+
"auth": {
|
|
9
|
+
"types": ["api_key"],
|
|
10
|
+
"headers": { "X-API-Key": "{{api_key}}" },
|
|
11
|
+
"credential_fields": [
|
|
12
|
+
{ "name": "api_key", "label": "SocialCast API Key", "description": "Your SocialCast API key (from Dashboard > API Keys)" }
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"tools": [
|
|
16
|
+
{
|
|
17
|
+
"name": "list_accounts",
|
|
18
|
+
"description": "List all connected social media accounts. Filter by platform or status.",
|
|
19
|
+
"method": "GET",
|
|
20
|
+
"path": "/accounts",
|
|
21
|
+
"input_schema": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"platform": { "type": "string", "enum": ["twitter", "instagram", "facebook", "linkedin", "tiktok", "youtube", "reddit", "pinterest", "telegram"], "description": "Filter by platform" },
|
|
25
|
+
"status": { "type": "string", "enum": ["active", "pending", "inactive", "expired", "error"], "description": "Filter by status" },
|
|
26
|
+
"limit": { "type": "integer", "default": 50, "description": "Max results" },
|
|
27
|
+
"offset": { "type": "integer", "default": 0, "description": "Pagination offset" }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "get_account",
|
|
33
|
+
"description": "Get details of a specific connected social media account",
|
|
34
|
+
"method": "GET",
|
|
35
|
+
"path": "/accounts/{{id}}",
|
|
36
|
+
"input_schema": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"id": { "type": "integer", "description": "Account ID" }
|
|
40
|
+
},
|
|
41
|
+
"required": ["id"]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "create_post",
|
|
46
|
+
"description": "Create and publish a post to one or more platforms. Supports text, images, videos, links, scheduling, and per-platform overrides.",
|
|
47
|
+
"method": "POST",
|
|
48
|
+
"path": "/posts",
|
|
49
|
+
"input_schema": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"properties": {
|
|
52
|
+
"text": { "type": "string", "description": "Post text/caption" },
|
|
53
|
+
"account_ids": { "type": "array", "items": { "type": "integer" }, "description": "Account IDs to publish to" },
|
|
54
|
+
"media_urls": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"description": "Media attachments",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {
|
|
60
|
+
"url": { "type": "string", "description": "Public URL of the media file" },
|
|
61
|
+
"type": { "type": "string", "enum": ["image", "video"], "description": "Media type" },
|
|
62
|
+
"alt_text": { "type": "string", "description": "Alt text" }
|
|
63
|
+
},
|
|
64
|
+
"required": ["url", "type"]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"link_url": { "type": "string", "description": "External link to include" },
|
|
68
|
+
"scheduled_for": { "type": "string", "description": "ISO 8601 timestamp for scheduled posting" },
|
|
69
|
+
"timezone": { "type": "string", "description": "IANA timezone (e.g. America/New_York)" },
|
|
70
|
+
"platform_overrides": { "type": "object", "description": "Per-platform content overrides keyed by platform name" }
|
|
71
|
+
},
|
|
72
|
+
"required": ["account_ids"]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "list_posts",
|
|
77
|
+
"description": "List posts with filtering and pagination",
|
|
78
|
+
"method": "GET",
|
|
79
|
+
"path": "/posts",
|
|
80
|
+
"input_schema": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"status": { "type": "string", "enum": ["draft", "scheduled", "publishing", "published", "partial", "failed"], "description": "Filter by status" },
|
|
84
|
+
"limit": { "type": "integer", "default": 20, "description": "Max results" },
|
|
85
|
+
"offset": { "type": "integer", "default": 0, "description": "Pagination offset" }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "get_post",
|
|
91
|
+
"description": "Get a post with full per-platform results, URLs, and statuses",
|
|
92
|
+
"method": "GET",
|
|
93
|
+
"path": "/posts/{{id}}",
|
|
94
|
+
"input_schema": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"id": { "type": "integer", "description": "Post ID" }
|
|
98
|
+
},
|
|
99
|
+
"required": ["id"]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "update_post",
|
|
104
|
+
"description": "Update a post's text and sync to platforms that support editing",
|
|
105
|
+
"method": "PUT",
|
|
106
|
+
"path": "/posts/{{id}}",
|
|
107
|
+
"input_schema": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"properties": {
|
|
110
|
+
"id": { "type": "integer", "description": "Post ID" },
|
|
111
|
+
"text": { "type": "string", "description": "New post text" }
|
|
112
|
+
},
|
|
113
|
+
"required": ["id", "text"]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "delete_post",
|
|
118
|
+
"description": "Delete a post and remove from platforms that support deletion",
|
|
119
|
+
"method": "DELETE",
|
|
120
|
+
"path": "/posts/{{id}}",
|
|
121
|
+
"input_schema": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"id": { "type": "integer", "description": "Post ID" }
|
|
125
|
+
},
|
|
126
|
+
"required": ["id"]
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "reschedule_post",
|
|
131
|
+
"description": "Reschedule a scheduled post to a new date/time",
|
|
132
|
+
"method": "POST",
|
|
133
|
+
"path": "/posts/{{id}}/reschedule",
|
|
134
|
+
"input_schema": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"properties": {
|
|
137
|
+
"id": { "type": "integer", "description": "Post ID" },
|
|
138
|
+
"scheduled_for": { "type": "string", "description": "New ISO 8601 timestamp" },
|
|
139
|
+
"timezone": { "type": "string", "description": "IANA timezone" }
|
|
140
|
+
},
|
|
141
|
+
"required": ["id", "scheduled_for"]
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "cancel_scheduled_post",
|
|
146
|
+
"description": "Cancel a scheduled post and move it back to draft status",
|
|
147
|
+
"method": "POST",
|
|
148
|
+
"path": "/posts/{{id}}/cancel",
|
|
149
|
+
"input_schema": {
|
|
150
|
+
"type": "object",
|
|
151
|
+
"properties": {
|
|
152
|
+
"id": { "type": "integer", "description": "Post ID" }
|
|
153
|
+
},
|
|
154
|
+
"required": ["id"]
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "get_post_analytics",
|
|
159
|
+
"description": "Get engagement metrics for a published post across all platforms — impressions, likes, comments, shares, views",
|
|
160
|
+
"method": "GET",
|
|
161
|
+
"path": "/posts/{{id}}/analytics",
|
|
162
|
+
"input_schema": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"properties": {
|
|
165
|
+
"id": { "type": "integer", "description": "Post ID" }
|
|
166
|
+
},
|
|
167
|
+
"required": ["id"]
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "check_account_health",
|
|
172
|
+
"description": "Check connection health of one or all social accounts. Verifies OAuth tokens are valid.",
|
|
173
|
+
"method": "GET",
|
|
174
|
+
"path": "/accounts/{{id}}/health",
|
|
175
|
+
"input_schema": {
|
|
176
|
+
"type": "object",
|
|
177
|
+
"properties": {
|
|
178
|
+
"id": { "type": "string", "description": "Account ID or 'all' to check all", "default": "all" }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|