@oomol-lab/open-connector 1.7.0 → 1.8.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.
Files changed (288) hide show
  1. package/README.md +4 -0
  2. package/assets/open-connector/catalog/apps/airtable.json +134 -0
  3. package/assets/open-connector/catalog/apps/aisa.json +916 -76
  4. package/assets/open-connector/catalog/apps/cal.json +24 -6
  5. package/assets/open-connector/catalog/apps/discordbot.json +2 -2
  6. package/assets/open-connector/catalog/apps/enormail.json +411 -0
  7. package/assets/open-connector/catalog/apps/feishu_app_bot.json +158 -0
  8. package/assets/open-connector/catalog/apps/github.json +275 -0
  9. package/assets/open-connector/catalog/apps/gitlab.json +125 -0
  10. package/assets/open-connector/catalog/apps/gmail.json +151 -0
  11. package/assets/open-connector/catalog/apps/googlecalendar.json +206 -0
  12. package/assets/open-connector/catalog/apps/googledrive.json +479 -0
  13. package/assets/open-connector/catalog/apps/googlesheets.json +144 -0
  14. package/assets/open-connector/catalog/apps/hithink_finance.json +6 -3
  15. package/assets/open-connector/catalog/apps/indexed.json +1115 -0
  16. package/assets/open-connector/catalog/apps/linear.json +116 -0
  17. package/assets/open-connector/catalog/apps/notion.json +142 -0
  18. package/assets/open-connector/catalog/apps/one_drive.json +185 -0
  19. package/assets/open-connector/catalog/apps/outlook.json +182 -0
  20. package/assets/open-connector/catalog/apps/shopify.json +282 -0
  21. package/assets/open-connector/catalog/apps/slack.json +182 -0
  22. package/assets/open-connector/catalog/apps/spotify.json +46 -43
  23. package/assets/open-connector/catalog/apps/stripe.json +96 -0
  24. package/assets/open-connector/catalog/apps/telegram.json +138 -0
  25. package/assets/open-connector/catalog/apps/weixin_store.json +543 -2
  26. package/assets/open-connector/catalog/apps/woocommerce.json +127 -0
  27. package/assets/open-connector/catalog/apps/zendesk.json +152 -0
  28. package/assets/open-connector/catalog/apps/zerotier.json +9 -9
  29. package/assets/open-connector/catalog/apps-index.json +1 -1
  30. package/assets/open-connector/migrations/0014_saas_project.sql +55 -0
  31. package/assets/open-connector/migrations/0015_saas_cleanup_runtime.sql +8 -0
  32. package/assets/open-connector/migrations/0016_trigger_policy.sql +1 -0
  33. package/assets/open-connector/migrations/0017_trigger_subscriptions.sql +17 -0
  34. package/assets/open-connector/migrations/postgresql/0014_saas_project.sql +55 -0
  35. package/assets/open-connector/migrations/postgresql/0015_saas_cleanup_runtime.sql +8 -0
  36. package/assets/open-connector/migrations/postgresql/0016_trigger_policy.sql +1 -0
  37. package/assets/open-connector/migrations/postgresql/0017_trigger_subscriptions.sql +17 -0
  38. package/package.json +2 -2
  39. package/src/connection-service.d.ts +40 -7
  40. package/src/connection-service.js +60 -18
  41. package/src/core/action-policy.d.ts +8 -1
  42. package/src/core/action-policy.js +51 -0
  43. package/src/core/cast.d.ts +3 -0
  44. package/src/core/cast.js +4 -1
  45. package/src/core/guarded-fetch.d.ts +5 -0
  46. package/src/core/guarded-fetch.js +13 -4
  47. package/src/core/remote-http.d.ts +33 -0
  48. package/src/core/remote-http.js +104 -0
  49. package/src/core/request.d.ts +1 -0
  50. package/src/core/request.js +7 -0
  51. package/src/core/types.d.ts +4 -0
  52. package/src/marketplace/marketplace-service.d.ts +0 -1
  53. package/src/marketplace/marketplace-service.js +80 -92
  54. package/src/mcp.js +19 -5
  55. package/src/oauth/oauth-flow-service.d.ts +8 -1
  56. package/src/oauth/oauth-flow-service.js +10 -4
  57. package/src/providers/action-contracts.generated.d.ts +4 -2
  58. package/src/providers/airtable/executors.d.ts +3 -0
  59. package/src/providers/airtable/executors.js +2 -0
  60. package/src/providers/airtable/trigger-on-record-changed.d.ts +2 -0
  61. package/src/providers/airtable/trigger-on-record-changed.definition.d.ts +4 -0
  62. package/src/providers/airtable/trigger-on-record-changed.definition.js +54 -0
  63. package/src/providers/airtable/trigger-on-record-changed.js +235 -0
  64. package/src/providers/aisa/executors.js +196 -22
  65. package/src/providers/cal/actions.js +5 -1
  66. package/src/providers/enormail/executors.d.ts +4 -0
  67. package/src/providers/enormail/executors.js +97 -0
  68. package/src/providers/feishu_app_bot/executors.d.ts +3 -0
  69. package/src/providers/feishu_app_bot/executors.js +2 -0
  70. package/src/providers/feishu_app_bot/trigger-config.d.ts +1 -0
  71. package/src/providers/feishu_app_bot/trigger-config.js +10 -0
  72. package/src/providers/feishu_app_bot/trigger-on-event.d.ts +2 -0
  73. package/src/providers/feishu_app_bot/trigger-on-event.definition.d.ts +4 -0
  74. package/src/providers/feishu_app_bot/trigger-on-event.definition.js +63 -0
  75. package/src/providers/feishu_app_bot/trigger-on-event.js +29 -0
  76. package/src/providers/feishu_app_bot/trigger-subscriptions.d.ts +5 -0
  77. package/src/providers/feishu_app_bot/trigger-subscriptions.js +70 -0
  78. package/src/providers/github/executors.d.ts +3 -0
  79. package/src/providers/github/executors.js +6 -0
  80. package/src/providers/github/trigger-on-repo-event.d.ts +2 -0
  81. package/src/providers/github/trigger-on-repo-event.definition.d.ts +4 -0
  82. package/src/providers/github/trigger-on-repo-event.definition.js +94 -0
  83. package/src/providers/github/trigger-on-repo-event.js +168 -0
  84. package/src/providers/github/trigger-watch-pull-request.d.ts +2 -0
  85. package/src/providers/github/trigger-watch-pull-request.definition.d.ts +4 -0
  86. package/src/providers/github/trigger-watch-pull-request.definition.js +49 -0
  87. package/src/providers/github/trigger-watch-pull-request.js +106 -0
  88. package/src/providers/gitlab/executors.d.ts +3 -0
  89. package/src/providers/gitlab/executors.js +2 -0
  90. package/src/providers/gitlab/trigger-on-project-event.d.ts +2 -0
  91. package/src/providers/gitlab/trigger-on-project-event.definition.d.ts +5 -0
  92. package/src/providers/gitlab/trigger-on-project-event.definition.js +63 -0
  93. package/src/providers/gitlab/trigger-on-project-event.js +186 -0
  94. package/src/providers/gmail/executors.d.ts +3 -0
  95. package/src/providers/gmail/executors.js +2 -0
  96. package/src/providers/gmail/trigger-on-message-received.d.ts +2 -0
  97. package/src/providers/gmail/trigger-on-message-received.definition.d.ts +4 -0
  98. package/src/providers/gmail/trigger-on-message-received.definition.js +74 -0
  99. package/src/providers/gmail/trigger-on-message-received.js +232 -0
  100. package/src/providers/googlecalendar/executors.d.ts +3 -0
  101. package/src/providers/googlecalendar/executors.js +2 -0
  102. package/src/providers/googlecalendar/trigger-on-event-changed.d.ts +2 -0
  103. package/src/providers/googlecalendar/trigger-on-event-changed.definition.d.ts +4 -0
  104. package/src/providers/googlecalendar/trigger-on-event-changed.definition.js +74 -0
  105. package/src/providers/googlecalendar/trigger-on-event-changed.js +233 -0
  106. package/src/providers/googledrive/executors.d.ts +3 -0
  107. package/src/providers/googledrive/executors.js +7 -0
  108. package/src/providers/googledrive/trigger-changes.d.ts +12 -0
  109. package/src/providers/googledrive/trigger-changes.definition.d.ts +7 -0
  110. package/src/providers/googledrive/trigger-changes.definition.js +101 -0
  111. package/src/providers/googledrive/trigger-changes.js +452 -0
  112. package/src/providers/googledrive/trigger-on-file-change.d.ts +2 -0
  113. package/src/providers/googledrive/trigger-on-file-change.definition.d.ts +4 -0
  114. package/src/providers/googledrive/trigger-on-file-change.definition.js +77 -0
  115. package/src/providers/googledrive/trigger-on-file-change.js +258 -0
  116. package/src/providers/googlesheets/executors.d.ts +3 -0
  117. package/src/providers/googlesheets/executors.js +2 -0
  118. package/src/providers/googlesheets/trigger-on-row-added.d.ts +2 -0
  119. package/src/providers/googlesheets/trigger-on-row-added.definition.d.ts +4 -0
  120. package/src/providers/googlesheets/trigger-on-row-added.definition.js +54 -0
  121. package/src/providers/googlesheets/trigger-on-row-added.js +234 -0
  122. package/src/providers/hithink_finance/runtime.js +1 -1
  123. package/src/providers/indexed/executors.d.ts +4 -0
  124. package/src/providers/indexed/executors.js +16 -0
  125. package/src/providers/indexed/runtime.d.ts +26 -0
  126. package/src/providers/indexed/runtime.js +129 -0
  127. package/src/providers/linear/executors.d.ts +3 -0
  128. package/src/providers/linear/executors.js +2 -0
  129. package/src/providers/linear/trigger-on-issue-changed.d.ts +2 -0
  130. package/src/providers/linear/trigger-on-issue-changed.definition.d.ts +5 -0
  131. package/src/providers/linear/trigger-on-issue-changed.definition.js +43 -0
  132. package/src/providers/linear/trigger-on-issue-changed.js +215 -0
  133. package/src/providers/notion/executors.d.ts +3 -0
  134. package/src/providers/notion/executors.js +2 -0
  135. package/src/providers/notion/trigger-on-database-page-event.d.ts +2 -0
  136. package/src/providers/notion/trigger-on-database-page-event.definition.d.ts +4 -0
  137. package/src/providers/notion/trigger-on-database-page-event.definition.js +63 -0
  138. package/src/providers/notion/trigger-on-database-page-event.js +293 -0
  139. package/src/providers/one_drive/executors.d.ts +3 -0
  140. package/src/providers/one_drive/executors.js +2 -0
  141. package/src/providers/one_drive/trigger-on-item-changed.d.ts +2 -0
  142. package/src/providers/one_drive/trigger-on-item-changed.definition.d.ts +4 -0
  143. package/src/providers/one_drive/trigger-on-item-changed.definition.js +63 -0
  144. package/src/providers/one_drive/trigger-on-item-changed.js +214 -0
  145. package/src/providers/outlook/executors.d.ts +3 -0
  146. package/src/providers/outlook/executors.js +2 -0
  147. package/src/providers/outlook/trigger-on-message-received.d.ts +2 -0
  148. package/src/providers/outlook/trigger-on-message-received.definition.d.ts +4 -0
  149. package/src/providers/outlook/trigger-on-message-received.definition.js +93 -0
  150. package/src/providers/outlook/trigger-on-message-received.js +226 -0
  151. package/src/providers/outlook_calendar/executors.js +6 -0
  152. package/src/providers/provider-loader.d.ts +5 -0
  153. package/src/providers/provider-loader.js +4 -0
  154. package/src/providers/registry.generated.js +2 -0
  155. package/src/providers/shopify/executors.d.ts +3 -0
  156. package/src/providers/shopify/executors.js +2 -0
  157. package/src/providers/shopify/trigger-on-shop-event.d.ts +2 -0
  158. package/src/providers/shopify/trigger-on-shop-event.definition.d.ts +4 -0
  159. package/src/providers/shopify/trigger-on-shop-event.definition.js +214 -0
  160. package/src/providers/shopify/trigger-on-shop-event.js +165 -0
  161. package/src/providers/slack/executors.d.ts +3 -0
  162. package/src/providers/slack/executors.js +2 -0
  163. package/src/providers/slack/trigger-on-message-posted.d.ts +2 -0
  164. package/src/providers/slack/trigger-on-message-posted.definition.d.ts +4 -0
  165. package/src/providers/slack/trigger-on-message-posted.definition.js +80 -0
  166. package/src/providers/slack/trigger-on-message-posted.js +176 -0
  167. package/src/providers/spotify/runtime.js +15 -4
  168. package/src/providers/stripe/executors.d.ts +3 -0
  169. package/src/providers/stripe/executors.js +2 -0
  170. package/src/providers/stripe/trigger-on-event.d.ts +2 -0
  171. package/src/providers/stripe/trigger-on-event.definition.d.ts +4 -0
  172. package/src/providers/stripe/trigger-on-event.definition.js +43 -0
  173. package/src/providers/stripe/trigger-on-event.js +212 -0
  174. package/src/providers/telegram/executors.d.ts +3 -0
  175. package/src/providers/telegram/executors.js +2 -0
  176. package/src/providers/telegram/trigger-on-update.d.ts +2 -0
  177. package/src/providers/telegram/trigger-on-update.definition.d.ts +5 -0
  178. package/src/providers/telegram/trigger-on-update.definition.js +78 -0
  179. package/src/providers/telegram/trigger-on-update.js +141 -0
  180. package/src/providers/weixin_store/access-token.d.ts +2 -1
  181. package/src/providers/weixin_store/access-token.js +15 -4
  182. package/src/providers/weixin_store/executors.js +97 -12
  183. package/src/providers/woocommerce/executors.d.ts +3 -0
  184. package/src/providers/woocommerce/executors.js +2 -0
  185. package/src/providers/woocommerce/trigger-on-store-event.d.ts +2 -0
  186. package/src/providers/woocommerce/trigger-on-store-event.definition.d.ts +4 -0
  187. package/src/providers/woocommerce/trigger-on-store-event.definition.js +55 -0
  188. package/src/providers/woocommerce/trigger-on-store-event.js +179 -0
  189. package/src/providers/zendesk/executors.d.ts +3 -0
  190. package/src/providers/zendesk/executors.js +2 -0
  191. package/src/providers/zendesk/trigger-on-event.d.ts +2 -0
  192. package/src/providers/zendesk/trigger-on-event.definition.d.ts +5 -0
  193. package/src/providers/zendesk/trigger-on-event.definition.js +101 -0
  194. package/src/providers/zendesk/trigger-on-event.js +188 -0
  195. package/src/saas/saas-cleanup-service.d.ts +26 -0
  196. package/src/saas/saas-cleanup-service.js +124 -0
  197. package/src/saas/saas-client.d.ts +86 -0
  198. package/src/saas/saas-client.js +369 -0
  199. package/src/saas/saas-execution-service.d.ts +15 -0
  200. package/src/saas/saas-execution-service.js +21 -0
  201. package/src/saas/saas-oauth-service.d.ts +25 -0
  202. package/src/saas/saas-oauth-service.js +197 -0
  203. package/src/saas/saas-project-service.d.ts +61 -0
  204. package/src/saas/saas-project-service.js +211 -0
  205. package/src/server/actions/action-idempotency.d.ts +1 -0
  206. package/src/server/actions/action-idempotency.js +1 -0
  207. package/src/server/actions/action-runner.d.ts +7 -0
  208. package/src/server/actions/action-runner.js +43 -7
  209. package/src/server/actions/run-log-summary.js +9 -0
  210. package/src/server/api/auth.d.ts +1 -0
  211. package/src/server/api/auth.js +13 -2
  212. package/src/server/api/cache-policy.js +4 -1
  213. package/src/server/api/connection-input.d.ts +7 -1
  214. package/src/server/api/connection-input.js +7 -1
  215. package/src/server/api/connection-routes.d.ts +3 -1
  216. package/src/server/api/connection-routes.js +21 -3
  217. package/src/server/api/http-utils.d.ts +4 -3
  218. package/src/server/api/oauth-completion-page.d.ts +124 -0
  219. package/src/server/api/oauth-completion-page.js +113 -18
  220. package/src/server/api/openapi.js +112 -14
  221. package/src/server/api/policy-input.js +6 -0
  222. package/src/server/api/runtime-api.d.ts +10 -2
  223. package/src/server/api/runtime-api.js +17 -4
  224. package/src/server/api/saas-completion-page.d.ts +2 -0
  225. package/src/server/api/saas-completion-page.js +103 -0
  226. package/src/server/connect-app.d.ts +5 -0
  227. package/src/server/connect-app.js +50 -0
  228. package/src/server/connect-server.d.ts +12 -0
  229. package/src/server/connect-server.js +147 -13
  230. package/src/server/connector-runtime.d.ts +3 -1
  231. package/src/server/connector-runtime.js +5 -2
  232. package/src/server/files/transit-files.js +16 -7
  233. package/src/server/proxy/proxy-runner.d.ts +5 -1
  234. package/src/server/proxy/proxy-runner.js +72 -26
  235. package/src/server/storage/connection-request-store.d.ts +41 -1
  236. package/src/server/storage/connection-request-store.js +245 -20
  237. package/src/server/storage/connection-store.d.ts +16 -0
  238. package/src/server/storage/connection-store.js +119 -0
  239. package/src/server/storage/node-runtime-database.js +3 -3
  240. package/src/server/storage/{postgres-migrations.d.ts → postgres/migrations.d.ts} +2 -2
  241. package/src/server/storage/{postgres-migrations.js → postgres/migrations.js} +1 -1
  242. package/src/server/storage/postgres/runtime-store.d.ts +43 -0
  243. package/src/server/storage/{postgres-runtime-store.js → postgres/runtime-store.js} +59 -94
  244. package/src/server/storage/runtime-database.d.ts +4 -0
  245. package/src/server/storage/runtime-sql.d.ts +1 -1
  246. package/src/server/storage/runtime-sql.js +2 -1
  247. package/src/server/storage/runtime-store.d.ts +1 -0
  248. package/src/server/storage/runtime-token-service.d.ts +2 -0
  249. package/src/server/storage/runtime-token-service.js +3 -0
  250. package/src/server/storage/saas-project-store.d.ts +77 -0
  251. package/src/server/storage/saas-project-store.js +273 -0
  252. package/src/server/storage/{sqlite-runtime-store.d.ts → sqlite/runtime-store.d.ts} +21 -25
  253. package/src/server/storage/{sqlite-runtime-store.js → sqlite/runtime-store.js} +100 -115
  254. package/src/server/storage/trigger-store.d.ts +16 -0
  255. package/src/server/storage/trigger-store.js +96 -0
  256. package/src/triggers/common/config.d.ts +2 -0
  257. package/src/triggers/common/config.js +17 -0
  258. package/src/triggers/common/configOptions.d.ts +13 -0
  259. package/src/triggers/common/configOptions.js +1 -0
  260. package/src/triggers/common/encoding.d.ts +3 -0
  261. package/src/triggers/common/encoding.js +19 -0
  262. package/src/triggers/common/integration.d.ts +115 -0
  263. package/src/triggers/common/integration.js +31 -0
  264. package/src/triggers/common/json.d.ts +6 -0
  265. package/src/triggers/common/json.js +91 -0
  266. package/src/triggers/common/poll.d.ts +41 -0
  267. package/src/triggers/common/poll.js +15 -0
  268. package/src/triggers/common/proxy.d.ts +14 -0
  269. package/src/triggers/common/proxy.js +1 -0
  270. package/src/triggers/common/types.d.ts +42 -0
  271. package/src/triggers/common/types.js +1 -0
  272. package/src/triggers/maintenance.d.ts +40 -0
  273. package/src/triggers/maintenance.js +120 -0
  274. package/src/triggers/metadata.d.ts +8 -0
  275. package/src/triggers/metadata.js +1 -0
  276. package/src/triggers/request.d.ts +33 -0
  277. package/src/triggers/request.js +52 -0
  278. package/src/triggers/resources.d.ts +12 -0
  279. package/src/triggers/resources.js +121 -0
  280. package/src/triggers/signature.d.ts +4 -0
  281. package/src/triggers/signature.js +48 -0
  282. package/src/triggers/store.d.ts +29 -0
  283. package/src/triggers/store.js +1 -0
  284. package/src/triggers/subscriptions.d.ts +22 -0
  285. package/src/triggers/subscriptions.js +220 -0
  286. package/src/triggers/trigger-runner.d.ts +34 -0
  287. package/src/triggers/trigger-runner.js +169 -0
  288. package/src/server/storage/postgres-runtime-store.d.ts +0 -39
@@ -366,9 +366,18 @@
366
366
  },
367
367
  "metadata": {
368
368
  "type": "object",
369
- "properties": {},
370
- "additionalProperties": true,
371
- "description": "Additional metadata to attach to the booking."
369
+ "additionalProperties": {
370
+ "type": "string",
371
+ "maxLength": 500,
372
+ "description": "A metadata value, up to 500 characters."
373
+ },
374
+ "description": "Additional booking metadata: at most 50 keys, each up to 40 characters, with string values up to 500 characters.",
375
+ "maxProperties": 50,
376
+ "propertyNames": {
377
+ "type": "string",
378
+ "maxLength": 40,
379
+ "description": "A metadata key, up to 40 characters."
380
+ }
372
381
  },
373
382
  "lengthInMinutes": {
374
383
  "type": "integer",
@@ -2142,9 +2151,18 @@
2142
2151
  },
2143
2152
  "metadata": {
2144
2153
  "type": "object",
2145
- "properties": {},
2146
- "additionalProperties": true,
2147
- "description": "Additional metadata to attach to the booking."
2154
+ "additionalProperties": {
2155
+ "type": "string",
2156
+ "maxLength": 500,
2157
+ "description": "A metadata value, up to 500 characters."
2158
+ },
2159
+ "description": "Additional booking metadata: at most 50 keys, each up to 40 characters, with string values up to 500 characters.",
2160
+ "maxProperties": 50,
2161
+ "propertyNames": {
2162
+ "type": "string",
2163
+ "maxLength": 40,
2164
+ "description": "A metadata key, up to 40 characters."
2165
+ }
2148
2166
  },
2149
2167
  "lengthInMinutes": {
2150
2168
  "type": "integer",
@@ -2330,7 +2330,7 @@
2330
2330
  "service": "discordbot",
2331
2331
  "name": "modify_guild_channel_positions",
2332
2332
  "description": "Reorder or re-parent channels in a Discord guild. Requires the MANAGE_CHANNELS permission. Only one entry per request may change parent_id.",
2333
- "operationType": "write",
2333
+ "operationType": "destructive",
2334
2334
  "requiredScopes": [],
2335
2335
  "providerPermissions": [],
2336
2336
  "inputSchema": {
@@ -2434,7 +2434,7 @@
2434
2434
  "service": "discordbot",
2435
2435
  "name": "modify_guild_incident_actions",
2436
2436
  "description": "Pause invites or direct messages in a Discord guild for up to 24 hours. Requires the MANAGE_GUILD permission.",
2437
- "operationType": "write",
2437
+ "operationType": "destructive",
2438
2438
  "requiredScopes": [],
2439
2439
  "providerPermissions": [],
2440
2440
  "inputSchema": {
@@ -0,0 +1,411 @@
1
+ {
2
+ "service": "enormail",
3
+ "displayName": "Enormail",
4
+ "homepageUrl": "https://enormail.eu",
5
+ "iconUrl": "https://enormail.eu/icon.svg",
6
+ "categories": [
7
+ "Communication",
8
+ "Marketing"
9
+ ],
10
+ "authTypes": [
11
+ "api_key"
12
+ ],
13
+ "auth": [
14
+ {
15
+ "type": "api_key",
16
+ "label": "API Key",
17
+ "placeholder": "ENORMAIL_API_KEY",
18
+ "description": "Create an API key in your Enormail account at https://app.enormail.eu/account/api. The key authenticates requests using HTTP Basic authentication."
19
+ }
20
+ ],
21
+ "actions": [
22
+ {
23
+ "id": "enormail.get_account",
24
+ "service": "enormail",
25
+ "name": "get_account",
26
+ "description": "Get the authenticated Enormail account profile.",
27
+ "operationType": "read",
28
+ "requiredScopes": [],
29
+ "providerPermissions": [],
30
+ "inputSchema": {
31
+ "type": "object",
32
+ "properties": {},
33
+ "additionalProperties": false,
34
+ "description": "Account query."
35
+ },
36
+ "outputSchema": {
37
+ "type": "object",
38
+ "properties": {
39
+ "id": {
40
+ "type": "string",
41
+ "description": "Account ID."
42
+ },
43
+ "firstname": {
44
+ "type": "string",
45
+ "description": "Account first name."
46
+ },
47
+ "lastname": {
48
+ "type": "string",
49
+ "description": "Account last name."
50
+ },
51
+ "email": {
52
+ "type": "string",
53
+ "description": "Account email address."
54
+ },
55
+ "created_at": {
56
+ "type": "string",
57
+ "description": "Account creation timestamp."
58
+ },
59
+ "lastlogin_at": {
60
+ "type": "string",
61
+ "description": "Last login timestamp."
62
+ }
63
+ },
64
+ "additionalProperties": true,
65
+ "description": "Enormail account profile."
66
+ }
67
+ },
68
+ {
69
+ "id": "enormail.get_contact",
70
+ "service": "enormail",
71
+ "name": "get_contact",
72
+ "description": "Get an Enormail contact by mailing list and email address.",
73
+ "operationType": "read",
74
+ "requiredScopes": [],
75
+ "providerPermissions": [],
76
+ "inputSchema": {
77
+ "type": "object",
78
+ "properties": {
79
+ "listid": {
80
+ "type": "string",
81
+ "minLength": 1,
82
+ "description": "Enormail mailing list ID."
83
+ },
84
+ "email": {
85
+ "type": "string",
86
+ "description": "Contact email address.",
87
+ "format": "email"
88
+ }
89
+ },
90
+ "additionalProperties": false,
91
+ "required": [
92
+ "listid",
93
+ "email"
94
+ ],
95
+ "description": "Contact lookup."
96
+ },
97
+ "outputSchema": {
98
+ "type": "object",
99
+ "properties": {
100
+ "listid": {
101
+ "type": "string",
102
+ "description": "Mailing list ID."
103
+ },
104
+ "email": {
105
+ "type": "string",
106
+ "description": "Contact email address."
107
+ },
108
+ "state": {
109
+ "type": "string",
110
+ "description": "Subscription state."
111
+ }
112
+ },
113
+ "additionalProperties": true,
114
+ "description": "Contact profile with upstream custom fields preserved."
115
+ }
116
+ },
117
+ {
118
+ "id": "enormail.get_list",
119
+ "service": "enormail",
120
+ "name": "get_list",
121
+ "description": "Get an Enormail mailing list and its subscriber counts.",
122
+ "operationType": "read",
123
+ "requiredScopes": [],
124
+ "providerPermissions": [],
125
+ "inputSchema": {
126
+ "type": "object",
127
+ "properties": {
128
+ "listid": {
129
+ "type": "string",
130
+ "minLength": 1,
131
+ "description": "Enormail mailing list ID."
132
+ }
133
+ },
134
+ "additionalProperties": false,
135
+ "required": [
136
+ "listid"
137
+ ],
138
+ "description": "Mailing list identifier."
139
+ },
140
+ "outputSchema": {
141
+ "type": "object",
142
+ "properties": {
143
+ "listid": {
144
+ "type": "string",
145
+ "description": "Mailing list ID."
146
+ },
147
+ "title": {
148
+ "type": "string",
149
+ "description": "Mailing list title."
150
+ }
151
+ },
152
+ "additionalProperties": true,
153
+ "description": "Mailing list details with upstream counts and timestamps."
154
+ }
155
+ },
156
+ {
157
+ "id": "enormail.get_mailing_stats",
158
+ "service": "enormail",
159
+ "name": "get_mailing_stats",
160
+ "description": "Get delivery, open, click, bounce, and unsubscribe statistics for a sent Enormail mailing.",
161
+ "operationType": "read",
162
+ "requiredScopes": [],
163
+ "providerPermissions": [],
164
+ "inputSchema": {
165
+ "type": "object",
166
+ "properties": {
167
+ "mailingid": {
168
+ "type": "string",
169
+ "minLength": 1,
170
+ "description": "Enormail mailing ID."
171
+ }
172
+ },
173
+ "additionalProperties": false,
174
+ "required": [
175
+ "mailingid"
176
+ ],
177
+ "description": "Sent mailing identifier."
178
+ },
179
+ "outputSchema": {
180
+ "type": "object",
181
+ "properties": {
182
+ "mailingid": {
183
+ "type": "string",
184
+ "description": "Mailing ID."
185
+ },
186
+ "statistics": {
187
+ "type": "object",
188
+ "properties": {},
189
+ "additionalProperties": true,
190
+ "description": "Delivery and engagement counters and ratios."
191
+ }
192
+ },
193
+ "additionalProperties": true,
194
+ "description": "Sent mailing metadata and statistics."
195
+ }
196
+ },
197
+ {
198
+ "id": "enormail.list_contacts",
199
+ "service": "enormail",
200
+ "name": "list_contacts",
201
+ "description": "List one page of Enormail contacts in a mailing list by subscription state.",
202
+ "operationType": "read",
203
+ "requiredScopes": [],
204
+ "providerPermissions": [],
205
+ "inputSchema": {
206
+ "type": "object",
207
+ "properties": {
208
+ "listid": {
209
+ "type": "string",
210
+ "minLength": 1,
211
+ "description": "Enormail mailing list ID."
212
+ },
213
+ "state": {
214
+ "type": "string",
215
+ "enum": [
216
+ "active",
217
+ "unconfirmed",
218
+ "unsubscribed",
219
+ "bounced"
220
+ ],
221
+ "description": "Subscription state to retrieve."
222
+ },
223
+ "page": {
224
+ "type": "integer",
225
+ "minimum": 1,
226
+ "description": "Page number to retrieve."
227
+ }
228
+ },
229
+ "additionalProperties": false,
230
+ "required": [
231
+ "listid",
232
+ "state"
233
+ ],
234
+ "description": "Contact list query."
235
+ },
236
+ "outputSchema": {
237
+ "type": "object",
238
+ "properties": {
239
+ "results": {
240
+ "type": "array",
241
+ "items": {
242
+ "type": "object",
243
+ "properties": {},
244
+ "additionalProperties": true,
245
+ "description": "Enormail resource with upstream fields preserved."
246
+ },
247
+ "description": "Resources on this page."
248
+ },
249
+ "total_results": {
250
+ "type": "integer",
251
+ "description": "Total number of matching resources."
252
+ },
253
+ "page_size": {
254
+ "type": "integer",
255
+ "description": "Number of resources per page."
256
+ },
257
+ "number_of_pages": {
258
+ "type": "integer",
259
+ "description": "Total number of pages."
260
+ },
261
+ "current_page": {
262
+ "type": "integer",
263
+ "description": "Current page number."
264
+ }
265
+ },
266
+ "additionalProperties": true,
267
+ "description": "One page of Enormail resources and pagination metadata."
268
+ }
269
+ },
270
+ {
271
+ "id": "enormail.list_lists",
272
+ "service": "enormail",
273
+ "name": "list_lists",
274
+ "description": "List one page of Enormail mailing lists.",
275
+ "operationType": "read",
276
+ "requiredScopes": [],
277
+ "providerPermissions": [],
278
+ "inputSchema": {
279
+ "type": "object",
280
+ "properties": {
281
+ "page": {
282
+ "type": "integer",
283
+ "minimum": 1,
284
+ "description": "Page number to retrieve."
285
+ }
286
+ },
287
+ "additionalProperties": false,
288
+ "description": "Mailing list query."
289
+ },
290
+ "outputSchema": {
291
+ "type": "object",
292
+ "properties": {
293
+ "lists": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "object",
297
+ "properties": {},
298
+ "additionalProperties": true,
299
+ "description": "Enormail resource with upstream fields preserved."
300
+ },
301
+ "description": "Mailing lists on this page."
302
+ }
303
+ },
304
+ "additionalProperties": false,
305
+ "required": [
306
+ "lists"
307
+ ],
308
+ "description": "Mailing list collection."
309
+ }
310
+ },
311
+ {
312
+ "id": "enormail.list_mailings",
313
+ "service": "enormail",
314
+ "name": "list_mailings",
315
+ "description": "List one page of sent, draft, or scheduled Enormail mailings.",
316
+ "operationType": "read",
317
+ "requiredScopes": [],
318
+ "providerPermissions": [],
319
+ "inputSchema": {
320
+ "type": "object",
321
+ "properties": {
322
+ "state": {
323
+ "type": "string",
324
+ "enum": [
325
+ "sent",
326
+ "drafts",
327
+ "scheduled"
328
+ ],
329
+ "description": "Mailing state to retrieve."
330
+ },
331
+ "page": {
332
+ "type": "integer",
333
+ "minimum": 1,
334
+ "description": "Page number to retrieve."
335
+ }
336
+ },
337
+ "additionalProperties": false,
338
+ "required": [
339
+ "state"
340
+ ],
341
+ "description": "Mailing query."
342
+ },
343
+ "outputSchema": {
344
+ "type": "object",
345
+ "properties": {
346
+ "results": {
347
+ "type": "array",
348
+ "items": {
349
+ "type": "object",
350
+ "properties": {},
351
+ "additionalProperties": true,
352
+ "description": "Enormail resource with upstream fields preserved."
353
+ },
354
+ "description": "Resources on this page."
355
+ },
356
+ "total_results": {
357
+ "type": "integer",
358
+ "description": "Total number of matching resources."
359
+ },
360
+ "page_size": {
361
+ "type": "integer",
362
+ "description": "Number of resources per page."
363
+ },
364
+ "number_of_pages": {
365
+ "type": "integer",
366
+ "description": "Total number of pages."
367
+ },
368
+ "current_page": {
369
+ "type": "integer",
370
+ "description": "Current page number."
371
+ }
372
+ },
373
+ "additionalProperties": true,
374
+ "description": "One page of Enormail resources and pagination metadata."
375
+ }
376
+ },
377
+ {
378
+ "id": "enormail.list_senders",
379
+ "service": "enormail",
380
+ "name": "list_senders",
381
+ "description": "List allowed sender email addresses for the Enormail account.",
382
+ "operationType": "read",
383
+ "requiredScopes": [],
384
+ "providerPermissions": [],
385
+ "inputSchema": {
386
+ "type": "object",
387
+ "properties": {},
388
+ "additionalProperties": false,
389
+ "description": "Sender query."
390
+ },
391
+ "outputSchema": {
392
+ "type": "object",
393
+ "properties": {
394
+ "senders": {
395
+ "type": "array",
396
+ "items": {
397
+ "type": "string",
398
+ "description": "Sender email address."
399
+ },
400
+ "description": "Allowed sender addresses."
401
+ }
402
+ },
403
+ "additionalProperties": false,
404
+ "required": [
405
+ "senders"
406
+ ],
407
+ "description": "Allowed senders."
408
+ }
409
+ }
410
+ ]
411
+ }
@@ -28425,5 +28425,163 @@
28425
28425
  "description": "The Sheets advanced operation result."
28426
28426
  }
28427
28427
  }
28428
+ ],
28429
+ "triggers": [
28430
+ {
28431
+ "key": "feishu_app_bot.on_event",
28432
+ "provider": "feishu_app_bot",
28433
+ "name": "on_event",
28434
+ "displayName": "Application Event",
28435
+ "description": "Receives selected Feishu application events through a shared event source.",
28436
+ "definitionVersion": 2,
28437
+ "type": "integration",
28438
+ "endpoint": {
28439
+ "methods": [
28440
+ "POST"
28441
+ ],
28442
+ "body": {
28443
+ "formats": [
28444
+ "json"
28445
+ ],
28446
+ "allowArray": false,
28447
+ "allowEmpty": false
28448
+ },
28449
+ "successStatus": 200
28450
+ },
28451
+ "configInputs": [
28452
+ {
28453
+ "handle": "sourceId",
28454
+ "jsonSchema": {
28455
+ "type": "string",
28456
+ "pattern": "^source_[0-9a-f]{32}$",
28457
+ "title": "Event source"
28458
+ },
28459
+ "nullable": false
28460
+ },
28461
+ {
28462
+ "handle": "eventTypes",
28463
+ "jsonSchema": {
28464
+ "type": "array",
28465
+ "items": {
28466
+ "type": "string",
28467
+ "pattern": "^[a-z][a-z0-9_.]{0,127}$"
28468
+ },
28469
+ "minItems": 1,
28470
+ "maxItems": 200,
28471
+ "uniqueItems": true,
28472
+ "title": "Event types"
28473
+ },
28474
+ "nullable": false
28475
+ },
28476
+ {
28477
+ "handle": "chatIds",
28478
+ "jsonSchema": {
28479
+ "type": "array",
28480
+ "items": {
28481
+ "type": "string",
28482
+ "minLength": 1,
28483
+ "maxLength": 256
28484
+ },
28485
+ "maxItems": 100,
28486
+ "uniqueItems": true,
28487
+ "title": "Chat IDs"
28488
+ },
28489
+ "nullable": true,
28490
+ "description": "Leave empty to receive events from all chats available to the source."
28491
+ },
28492
+ {
28493
+ "handle": "resource",
28494
+ "jsonSchema": {
28495
+ "type": "object",
28496
+ "properties": {
28497
+ "kind": {
28498
+ "type": "string",
28499
+ "enum": [
28500
+ "document",
28501
+ "calendar",
28502
+ "approval"
28503
+ ]
28504
+ },
28505
+ "id": {
28506
+ "type": "string",
28507
+ "minLength": 1,
28508
+ "maxLength": 256
28509
+ },
28510
+ "documentType": {
28511
+ "type": "string",
28512
+ "enum": [
28513
+ "doc",
28514
+ "docx",
28515
+ "sheet",
28516
+ "bitable",
28517
+ "file",
28518
+ "folder"
28519
+ ]
28520
+ }
28521
+ },
28522
+ "additionalProperties": false,
28523
+ "required": [
28524
+ "kind",
28525
+ "id"
28526
+ ],
28527
+ "title": "Resource subscription"
28528
+ },
28529
+ "nullable": true
28530
+ }
28531
+ ],
28532
+ "outputs": [
28533
+ {
28534
+ "handle": "event",
28535
+ "jsonSchema": {
28536
+ "type": "string"
28537
+ },
28538
+ "nullable": false
28539
+ },
28540
+ {
28541
+ "handle": "deliveryId",
28542
+ "jsonSchema": {
28543
+ "type": "string"
28544
+ },
28545
+ "nullable": false
28546
+ },
28547
+ {
28548
+ "handle": "appId",
28549
+ "jsonSchema": {
28550
+ "type": "string"
28551
+ },
28552
+ "nullable": false
28553
+ },
28554
+ {
28555
+ "handle": "tenantKey",
28556
+ "jsonSchema": {
28557
+ "type": "string"
28558
+ },
28559
+ "nullable": false
28560
+ },
28561
+ {
28562
+ "handle": "occurredAt",
28563
+ "jsonSchema": {
28564
+ "type": "string"
28565
+ },
28566
+ "nullable": true
28567
+ },
28568
+ {
28569
+ "handle": "body",
28570
+ "jsonSchema": {
28571
+ "type": "object"
28572
+ },
28573
+ "nullable": false
28574
+ }
28575
+ ]
28576
+ }
28577
+ ],
28578
+ "triggerPermissions": [
28579
+ {
28580
+ "id": "feishu_app_bot.on_event",
28581
+ "name": "Application Event",
28582
+ "description": "Receives selected application events through a shared source and manages configured document, calendar or approval resource subscriptions.",
28583
+ "providerPermissions": [],
28584
+ "instructions": "Enable the selected events and their required API permissions in the Feishu app console. Resource subscriptions additionally require access to the selected document, calendar or approval definition; permissions vary by event and resource."
28585
+ }
28428
28586
  ]
28429
28587
  }