n8n-nodes-runninghub-client 0.1.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.
Files changed (112) hide show
  1. package/README.md +287 -0
  2. package/dist/credentials/RunninghubApiApi.credentials.d.ts +10 -0
  3. package/dist/credentials/RunninghubApiApi.credentials.js +41 -0
  4. package/dist/credentials/RunninghubApiApi.credentials.js.map +1 -0
  5. package/dist/icons/runninghub-dark.svg +24 -0
  6. package/dist/icons/runninghub-light.svg +24 -0
  7. package/dist/nodes/RunninghubApi/RunninghubApi.node.d.ts +5 -0
  8. package/dist/nodes/RunninghubApi/RunninghubApi.node.js +185 -0
  9. package/dist/nodes/RunninghubApi/RunninghubApi.node.js.map +1 -0
  10. package/dist/nodes/RunninghubApi/RunninghubApi.node.json +18 -0
  11. package/dist/nodes/RunninghubApi/requestRouting.d.ts +24 -0
  12. package/dist/nodes/RunninghubApi/requestRouting.js +507 -0
  13. package/dist/nodes/RunninghubApi/requestRouting.js.map +1 -0
  14. package/dist/nodes/RunninghubApi/resources/account/create.d.ts +2 -0
  15. package/dist/nodes/RunninghubApi/resources/account/create.js +27 -0
  16. package/dist/nodes/RunninghubApi/resources/account/create.js.map +1 -0
  17. package/dist/nodes/RunninghubApi/resources/account/get.d.ts +2 -0
  18. package/dist/nodes/RunninghubApi/resources/account/get.js +18 -0
  19. package/dist/nodes/RunninghubApi/resources/account/get.js.map +1 -0
  20. package/dist/nodes/RunninghubApi/resources/account/getApiKeyList.d.ts +2 -0
  21. package/dist/nodes/RunninghubApi/resources/account/getApiKeyList.js +18 -0
  22. package/dist/nodes/RunninghubApi/resources/account/getApiKeyList.js.map +1 -0
  23. package/dist/nodes/RunninghubApi/resources/account/getQueueStatus.d.ts +2 -0
  24. package/dist/nodes/RunninghubApi/resources/account/getQueueStatus.js +18 -0
  25. package/dist/nodes/RunninghubApi/resources/account/getQueueStatus.js.map +1 -0
  26. package/dist/nodes/RunninghubApi/resources/account/index.d.ts +2 -0
  27. package/dist/nodes/RunninghubApi/resources/account/index.js +45 -0
  28. package/dist/nodes/RunninghubApi/resources/account/index.js.map +1 -0
  29. package/dist/nodes/RunninghubApi/resources/aiApp/getApiCallDemo.d.ts +2 -0
  30. package/dist/nodes/RunninghubApi/resources/aiApp/getApiCallDemo.js +21 -0
  31. package/dist/nodes/RunninghubApi/resources/aiApp/getApiCallDemo.js.map +1 -0
  32. package/dist/nodes/RunninghubApi/resources/aiApp/index.d.ts +2 -0
  33. package/dist/nodes/RunninghubApi/resources/aiApp/index.js +45 -0
  34. package/dist/nodes/RunninghubApi/resources/aiApp/index.js.map +1 -0
  35. package/dist/nodes/RunninghubApi/resources/aiApp/listPublicModels.d.ts +2 -0
  36. package/dist/nodes/RunninghubApi/resources/aiApp/listPublicModels.js +83 -0
  37. package/dist/nodes/RunninghubApi/resources/aiApp/listPublicModels.js.map +1 -0
  38. package/dist/nodes/RunninghubApi/resources/aiApp/runAiApp.d.ts +2 -0
  39. package/dist/nodes/RunninghubApi/resources/aiApp/runAiApp.js +52 -0
  40. package/dist/nodes/RunninghubApi/resources/aiApp/runAiApp.js.map +1 -0
  41. package/dist/nodes/RunninghubApi/resources/file/getLoraUploadUrl.d.ts +2 -0
  42. package/dist/nodes/RunninghubApi/resources/file/getLoraUploadUrl.js +32 -0
  43. package/dist/nodes/RunninghubApi/resources/file/getLoraUploadUrl.js.map +1 -0
  44. package/dist/nodes/RunninghubApi/resources/file/index.d.ts +2 -0
  45. package/dist/nodes/RunninghubApi/resources/file/index.js +45 -0
  46. package/dist/nodes/RunninghubApi/resources/file/index.js.map +1 -0
  47. package/dist/nodes/RunninghubApi/resources/file/uploadDeprecatedFile.d.ts +2 -0
  48. package/dist/nodes/RunninghubApi/resources/file/uploadDeprecatedFile.js +61 -0
  49. package/dist/nodes/RunninghubApi/resources/file/uploadDeprecatedFile.js.map +1 -0
  50. package/dist/nodes/RunninghubApi/resources/file/uploadFile.d.ts +2 -0
  51. package/dist/nodes/RunninghubApi/resources/file/uploadFile.js +32 -0
  52. package/dist/nodes/RunninghubApi/resources/file/uploadFile.js.map +1 -0
  53. package/dist/nodes/RunninghubApi/resources/mediaTools/index.d.ts +2 -0
  54. package/dist/nodes/RunninghubApi/resources/mediaTools/index.js +41 -0
  55. package/dist/nodes/RunninghubApi/resources/mediaTools/index.js.map +1 -0
  56. package/dist/nodes/RunninghubApi/resources/mediaTools/request.d.ts +2 -0
  57. package/dist/nodes/RunninghubApi/resources/mediaTools/request.js +242 -0
  58. package/dist/nodes/RunninghubApi/resources/mediaTools/request.js.map +1 -0
  59. package/dist/nodes/RunninghubApi/resources/modelApi/index.d.ts +2 -0
  60. package/dist/nodes/RunninghubApi/resources/modelApi/index.js +37 -0
  61. package/dist/nodes/RunninghubApi/resources/modelApi/index.js.map +1 -0
  62. package/dist/nodes/RunninghubApi/resources/modelApi/previewModelApiPrice.d.ts +2 -0
  63. package/dist/nodes/RunninghubApi/resources/modelApi/previewModelApiPrice.js +32 -0
  64. package/dist/nodes/RunninghubApi/resources/modelApi/previewModelApiPrice.js.map +1 -0
  65. package/dist/nodes/RunninghubApi/resources/modelApi/runModelApi.d.ts +2 -0
  66. package/dist/nodes/RunninghubApi/resources/modelApi/runModelApi.js +32 -0
  67. package/dist/nodes/RunninghubApi/resources/modelApi/runModelApi.js.map +1 -0
  68. package/dist/nodes/RunninghubApi/resources/nativeComfy/index.d.ts +2 -0
  69. package/dist/nodes/RunninghubApi/resources/nativeComfy/index.js +53 -0
  70. package/dist/nodes/RunninghubApi/resources/nativeComfy/index.js.map +1 -0
  71. package/dist/nodes/RunninghubApi/resources/nativeComfy/request.d.ts +2 -0
  72. package/dist/nodes/RunninghubApi/resources/nativeComfy/request.js +200 -0
  73. package/dist/nodes/RunninghubApi/resources/nativeComfy/request.js.map +1 -0
  74. package/dist/nodes/RunninghubApi/resources/quickCreate/getModelParams.d.ts +2 -0
  75. package/dist/nodes/RunninghubApi/resources/quickCreate/getModelParams.js +32 -0
  76. package/dist/nodes/RunninghubApi/resources/quickCreate/getModelParams.js.map +1 -0
  77. package/dist/nodes/RunninghubApi/resources/quickCreate/index.d.ts +2 -0
  78. package/dist/nodes/RunninghubApi/resources/quickCreate/index.js +37 -0
  79. package/dist/nodes/RunninghubApi/resources/quickCreate/index.js.map +1 -0
  80. package/dist/nodes/RunninghubApi/resources/quickCreate/runQuickCreate.d.ts +2 -0
  81. package/dist/nodes/RunninghubApi/resources/quickCreate/runQuickCreate.js +43 -0
  82. package/dist/nodes/RunninghubApi/resources/quickCreate/runQuickCreate.js.map +1 -0
  83. package/dist/nodes/RunninghubApi/resources/task/cancelTask.d.ts +2 -0
  84. package/dist/nodes/RunninghubApi/resources/task/cancelTask.js +21 -0
  85. package/dist/nodes/RunninghubApi/resources/task/cancelTask.js.map +1 -0
  86. package/dist/nodes/RunninghubApi/resources/task/createTask.d.ts +2 -0
  87. package/dist/nodes/RunninghubApi/resources/task/createTask.js +241 -0
  88. package/dist/nodes/RunninghubApi/resources/task/createTask.js.map +1 -0
  89. package/dist/nodes/RunninghubApi/resources/task/getTask.d.ts +3 -0
  90. package/dist/nodes/RunninghubApi/resources/task/getTask.js +79 -0
  91. package/dist/nodes/RunninghubApi/resources/task/getTask.js.map +1 -0
  92. package/dist/nodes/RunninghubApi/resources/task/getTaskOutput.d.ts +2 -0
  93. package/dist/nodes/RunninghubApi/resources/task/getTaskOutput.js +21 -0
  94. package/dist/nodes/RunninghubApi/resources/task/getTaskOutput.js.map +1 -0
  95. package/dist/nodes/RunninghubApi/resources/task/getWorkflowInfo.d.ts +2 -0
  96. package/dist/nodes/RunninghubApi/resources/task/getWorkflowInfo.js +31 -0
  97. package/dist/nodes/RunninghubApi/resources/task/getWorkflowInfo.js.map +1 -0
  98. package/dist/nodes/RunninghubApi/resources/task/index.d.ts +2 -0
  99. package/dist/nodes/RunninghubApi/resources/task/index.js +71 -0
  100. package/dist/nodes/RunninghubApi/resources/task/index.js.map +1 -0
  101. package/dist/nodes/RunninghubApi/resources/webhook/getWebhookDetail.d.ts +2 -0
  102. package/dist/nodes/RunninghubApi/resources/webhook/getWebhookDetail.js +21 -0
  103. package/dist/nodes/RunninghubApi/resources/webhook/getWebhookDetail.js.map +1 -0
  104. package/dist/nodes/RunninghubApi/resources/webhook/index.d.ts +2 -0
  105. package/dist/nodes/RunninghubApi/resources/webhook/index.js +37 -0
  106. package/dist/nodes/RunninghubApi/resources/webhook/index.js.map +1 -0
  107. package/dist/nodes/RunninghubApi/resources/webhook/retryWebhook.d.ts +2 -0
  108. package/dist/nodes/RunninghubApi/resources/webhook/retryWebhook.js +32 -0
  109. package/dist/nodes/RunninghubApi/resources/webhook/retryWebhook.js.map +1 -0
  110. package/dist/package.json +67 -0
  111. package/dist/tsconfig.tsbuildinfo +1 -0
  112. package/package.json +134 -0
package/README.md ADDED
@@ -0,0 +1,287 @@
1
+
2
+ # @difyz9/n8n-nodes-runninghub-api
3
+
4
+ [![npm version](https://img.shields.io/npm/v/%40difyz9%2Fn8n-nodes-runninghub-api.svg)](https://www.npmjs.com/package/@difyz9/n8n-nodes-runninghub-api)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ English | [简体中文](README-ZH.md)
8
+
9
+ This is an n8n community node that lets you use [Runninghub](https://www.runninghub.cn) in your n8n workflows.
10
+
11
+ Runninghub is a cloud-based ComfyUI task execution platform that provides powerful AI image/video generation capabilities through an easy-to-use API.
12
+
13
+ [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.
14
+
15
+ ## Table of Contents
16
+
17
+ - [Installation](#installation)
18
+ - [Operations](#operations)
19
+ - [Credentials](#credentials)
20
+ - [Compatibility](#compatibility)
21
+ - [Usage](#usage)
22
+ - [Resources](#resources)
23
+ - [Version History](#version-history)
24
+
25
+ ## Installation
26
+
27
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
28
+
29
+ ### Community Node Installation
30
+
31
+ 1. Go to **Settings > Community Nodes** in your n8n instance
32
+ 2. Select **Install**
33
+
34
+ 3. Enter `@difyz9/n8n-nodes-runninghub-api` in the **Enter npm package name** field
35
+ 4. Agree to the risks and select **Install**
36
+
37
+ After installation, the **Runninghub Api** node will be available in your workflow editor.
38
+
39
+ ## Operations
40
+
41
+ This node supports **30 operations** across **9 resources**, covering the original workflow APIs plus key v2 account/model/media endpoints, a native ComfyUI proxy resource, and dedicated structured media tools for common video/audio jobs:
42
+
43
+ ### 📋 Account
44
+ - **Get Account Info** - Retrieve account status including RH coins, running tasks, wallet balance, and API type
45
+ - **Get API Key List** - List API keys under the current account
46
+ - **Get Queue Status** - Check queue status for the current API key
47
+
48
+ ### 🚀 Task
49
+ - **Create Task Simple** - Run a workflow directly without overriding node parameters
50
+ - **Create Task** - Create a ComfyUI task based on a workflow template
51
+ - **Get Task Info** - Query task status (QUEUED, RUNNING, SUCCESS, FAILED)
52
+ - **Get Task Output** - Retrieve task results (images, videos, etc.)
53
+ - **Get Task Output V2** - Retrieve task results from the v2 query endpoint
54
+ - **Get Workflow Info** - Get workflow JSON configuration
55
+ - **Cancel Task** - Cancel a running or queued task
56
+
57
+ ### ⚡ Quick Create
58
+ - **Get Model Params** - Retrieve quick creation model library style parameters
59
+ - **Run Quick Create** - Initiate a quick creation task
60
+
61
+ ### 🤖 AI App
62
+ - **Run AI App** - Initiate an AI application task
63
+ - **Get API Call Demo** - Get API call example for AI applications
64
+ - **List Public Models** - Query public model resources from the RunningHub model library
65
+
66
+ ### 🧠 Model API
67
+ - **Run Model API** - Call any standard model endpoint under `/openapi/v2/...` by providing the endpoint path and JSON body
68
+ - **Preview Model API Price** - Preview pricing for any standard model API request using `/openapi/v2/price-preview/...`
69
+
70
+ ### 🎬 Media Tools
71
+ - **Upscale Video** - Call `POST /openapi/v2/rhart-video/video-upscaler` with structured `videoUrl` and `targetResolution`
72
+ - **Increase Video FPS** - Call `POST /openapi/v2/rhart-video/video-fps-increaser` with a structured `videoUrl`
73
+ - **Text To Audio Speech 2.8 Turbo** - Call `POST /openapi/v2/rhart-audio/text-to-audio/speech-2.8-turbo` with structured TTS parameters such as `voice_id`, `emotion`, `speed`, `volume`, and `pitch`
74
+
75
+ ### 🔌 ComfyUI Proxy
76
+ - **Get Object Info** - Call `GET /object_info` on the native ComfyUI proxy
77
+ - **Get Queue** - Call `GET /queue` on the native ComfyUI proxy
78
+ - **Get History** - Call `GET /history` or `GET /history/{promptId}` on the native ComfyUI proxy
79
+ - **Submit Prompt** - Call `POST /prompt` on the native ComfyUI proxy
80
+ - **Request Proxy API** - Call the RunningHub native ComfyUI proxy exposed at `/proxy/{apiKey}` or `/proxy-plus/{apiKey}` for endpoints like `/object_info`, `/queue`, `/history/<promptId>`, and `/prompt`
81
+
82
+ ### 📁 File
83
+ - **Upload File** - Upload images, videos, audio, or ZIP files through `/openapi/v2/media/upload/binary` (max 30MB)
84
+ - Response includes both `download_url` for standard model APIs and `fileName` for ComfyUI workflow nodes
85
+
86
+ - **Upload Resource (Deprecated)** - Upload files through the legacy deprecated `/task/openapi/upload` endpoint
87
+ - Supported formats: JPG, PNG, JPEG, WEBP (images), MP4, AVI, MOV, MKV (videos), MP3, WAV, FLAC (audio), ZIP (archives)
88
+ - **Get Lora Upload URL** - Get upload URL for Lora model files
89
+
90
+ ### 🔔 Webhook
91
+ - **Get Webhook Detail** - Get webhook event details for debugging
92
+ - **Retry Webhook** - Resend a specific webhook event
93
+
94
+ ## Credentials
95
+
96
+ ### Prerequisites
97
+
98
+ 1. Sign up for a Runninghub account at [https://www.runninghub.cn](https://www.runninghub.cn)
99
+ 2. Navigate to your account settings to generate an API key
100
+
101
+ ### Setting up credentials in n8n
102
+
103
+ 1. In n8n, go to **Credentials > New**
104
+ 2. Search for **Runninghub Api**
105
+ 3. Enter your **API Key** from Runninghub
106
+ 4. Click **Save**
107
+
108
+ ### Testing credentials
109
+
110
+ The credentials include a built-in test that verifies your API key by calling the account status endpoint.
111
+
112
+ ## Compatibility
113
+
114
+ - **Minimum n8n version**: 1.0.0
115
+ - **Tested against**: n8n 1.0.0+
116
+ - **Node API Version**: 1
117
+
118
+ This node has been tested and is compatible with the latest versions of n8n.
119
+
120
+ ## Usage
121
+
122
+ ### Basic Workflow Example
123
+
124
+ Here's a simple workflow to create a ComfyUI task and retrieve the results:
125
+
126
+ 1. **Add Runninghub Api node** to your workflow
127
+ 2. **Select Resource**: Task
128
+ 3. **Select Operation**: Create Task
129
+ 4. **Enter Workflow ID**: Your ComfyUI workflow template ID
130
+ 5. **Optionally customize node parameters** by enabling "Send NodeInfo List"
131
+ 6. **Add another Runninghub Api node** to poll for task completion
132
+ 7. **Select Operation**: Get Task Output
133
+ 8. **Use the Task ID** from the previous node
134
+
135
+ ### Working with Node Parameters
136
+
137
+ When creating tasks, you can customize node parameters using the `nodeInfoList` field:
138
+
139
+ ```json
140
+ [
141
+ {
142
+ "nodeId": "6",
143
+ "fieldName": "text",
144
+ "fieldValue": "A beautiful sunset over mountains"
145
+ },
146
+ {
147
+ "nodeId": "3",
148
+ "fieldName": "seed",
149
+ "fieldValue": "12345"
150
+ }
151
+ ]
152
+ ```
153
+
154
+ ### Simple and Advanced ComfyUI Tasks
155
+
156
+ Use `Create Task Simple` when you want the documented "run as-is" behavior from RunningHub's simple task API. It only sends `workflowId` plus optional `addMetadata` and `accessPassword`.
157
+
158
+ ### Advanced ComfyUI Task Options
159
+
160
+ The `Create Task` operation also exposes the current advanced workflow options from the RunningHub docs, including `accessPassword`, `addMetadata`, `webhookUrl`, `workflow` JSON override, `instanceType`, `usePersonalQueue`, and `retainSeconds`.
161
+
162
+ ### Structured ComfyUI Workflow Editing
163
+
164
+ ComfyUI workflow tasks now support two ways to provide `nodeInfoList`:
165
+
166
+ 1. `JSON` mode for pasting the full `nodeInfoList` array manually
167
+ 2. `Structured Items` mode for adding `nodeId`, `fieldName`, and typed `fieldValue` entries one by one
168
+
169
+ The `Get Workflow Info` operation can also parse the returned workflow prompt and add a `nodeInfoListPreview` array to the output, which makes it easier to identify editable workflow fields before calling `Create Task`.
170
+
171
+ ### Generic Standard Model Calls
172
+
173
+ Use the `Model API` resource when the online documentation exposes a model endpoint that does not have a dedicated n8n operation yet.
174
+
175
+ 1. Select **Resource**: Model API
176
+ 2. Select **Operation**: Run Model API or Preview Model API Price
177
+ 3. Enter the endpoint path relative to `/openapi/v2`, such as `kling-video-o3-std/video-edit`
178
+ 4. Paste the request body JSON from the RunningHub API docs
179
+
180
+
181
+ ### Structured Media Tool
182
+
183
+ Use the `Media Tool` resource when you want dedicated forms for a few high-frequency standard model APIs instead of manually building JSON bodies.
184
+
185
+ 1. Select **Resource**: Media Tool
186
+ 2. Choose **Upscale Video**, **Increase Video FPS**, or **Text To Audio Speech 2.8 Turbo**
187
+ 3. For video jobs, pass a public video URL or the `download_url` returned by `Upload File`
188
+ 4. For TTS jobs, fill the structured voice, emotion, and pronunciation settings instead of building raw JSON by hand
189
+
190
+ ### Native ComfyUI Proxy Calls
191
+
192
+ Use the `ComfyUI Proxy` resource when you want RunningHub to behave like a native ComfyUI server.
193
+
194
+ 1. Select **Resource**: ComfyUI Proxy
195
+ 2. Use a preset operation like **Get Object Info**, **Get Queue**, **Get History**, or **Submit Prompt** for common flows
196
+ 3. Or choose **Request Proxy API** when you need a custom ComfyUI path
197
+ 4. Select **Default (24GB)** or **Plus (48GB)** and provide the request body for `POST` calls when needed
198
+
199
+ For `Submit Prompt`, the node now supports both a full request body mode and a structured mode where you provide `prompt`, optional `client_id`, and optional `extra_data` separately.
200
+
201
+ ### File Upload Example
202
+
203
+ To upload an image for use in a workflow:
204
+
205
+ 1. **Add Runninghub Api node**
206
+ 2. **Select Resource**: File
207
+ 3. **Select Operation**: Upload File
208
+ 4. **Enter file path** or reference from previous node
209
+ 5. **Use the returned fileName** in your task's nodeInfoList, or `download_url` in standard model API requests
210
+
211
+ Use `Upload Resource (Deprecated)` only when you need compatibility with older workflows that still expect the legacy `/task/openapi/upload` behavior.
212
+
213
+ ### Webhook Integration
214
+
215
+ For long-running tasks, use webhooks to get notified when tasks complete:
216
+
217
+ 1. Set up a webhook endpoint in your n8n workflow
218
+ 2. When creating a task, add the `webhookUrl` parameter
219
+ 3. Runninghub will POST results to your webhook when the task finishes
220
+
221
+ ## Resources
222
+
223
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
224
+ - [Runninghub Official Website](https://www.runninghub.cn)
225
+ - [Runninghub API Documentation](https://www.runninghub.cn/runninghub-api-doc-cn/)
226
+ - [ComfyUI Documentation](https://github.com/comfyanonymous/ComfyUI)
227
+ - [Project Structure](docs/PROJECT_STRUCTURE.md)
228
+ - [Development Guide](docs/DEVELOPMENT_GUIDE.md)
229
+ - [Implementation Summary](docs/IMPLEMENTATION_SUMMARY.md)
230
+
231
+ ## Version History
232
+
233
+ ### 0.1.1 (Current)
234
+ - ✅ Complete implementation of all 14 Runninghub API endpoints
235
+ - ✅ Added Quick Create resource with 2 operations
236
+ - ✅ Added AI App resource with 2 operations
237
+ - ✅ Added File resource with 2 operations
238
+ - ✅ Added Webhook resource with 2 operations
239
+ - ✅ Enhanced all operations with detailed descriptions
240
+ - ✅ Fixed cancelTask export naming
241
+ - ✅ Improved parameter validation and error handling
242
+
243
+ ### Unreleased
244
+ - ✅ Added v2 account operations for API key list and queue status
245
+ - ✅ Added `Get Task Output V2`
246
+ - ✅ Added AI App public model listing
247
+ - ✅ Added `Create Task Simple` for the documented simple ComfyUI task entrypoint
248
+ - ✅ Switched `Upload File` to the current `/openapi/v2/media/upload/binary` API
249
+ - ✅ Added `Upload Resource (Deprecated)` for the legacy `/task/openapi/upload` API
250
+
251
+ - ✅ Added `Media Tool` resource with structured video upscaling, video FPS enhancement, and Speech 2.8 Turbo TTS operations
252
+ - ✅ Added a generic `Model API` resource for `/openapi/v2/...` endpoints and price previews
253
+ - ✅ Added a native `ComfyUI Proxy` resource for `/proxy/{apiKey}` and `/proxy-plus/{apiKey}`
254
+ - ✅ Exposed advanced ComfyUI task parameters such as `retainSeconds`, `instanceType`, and `webhookUrl`
255
+
256
+ ### 0.1.0
257
+ - Initial release
258
+ - Basic Task and Account operations
259
+ - API Key authentication
260
+
261
+ ## Contributing
262
+
263
+ Contributions are welcome! Please feel free to submit a Pull Request.
264
+
265
+ ## License
266
+
267
+ [MIT](LICENSE.md)
268
+
269
+ ## Support
270
+
271
+ If you encounter any issues or have questions:
272
+
273
+ 1. Check the [Runninghub API Documentation](https://www.runninghub.cn/runninghub-api-doc)
274
+
275
+ 2. Open an issue on [GitHub](https://github.com/difyz9/n8n-nodes-runninghub-api/issues)
276
+
277
+ 3. Contact the Runninghub support team
278
+
279
+ ## Acknowledgments
280
+
281
+ - Built with [n8n-node-dev](https://github.com/n8n-io/n8n/tree/master/packages/node-dev)
282
+ - Integrates with [Runninghub](https://www.runninghub.cn) ComfyUI cloud platform
283
+ - Maintained in [difyz9/n8n-nodes-runninghub-api](https://github.com/difyz9/n8n-nodes-runninghub-api)
284
+
285
+ ---
286
+
287
+ **Made with ❤️ for the n8n community**
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class RunninghubApiApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ icon: Icon;
6
+ documentationUrl: string;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunninghubApiApi = void 0;
4
+ class RunninghubApiApi {
5
+ constructor() {
6
+ this.name = 'runninghubApiApi';
7
+ this.displayName = 'Runninghub Api API';
8
+ this.icon = {
9
+ light: 'file:../icons/runninghub-light.svg',
10
+ dark: 'file:../icons/runninghub-dark.svg',
11
+ };
12
+ this.documentationUrl = 'https://github.com/difyz9/n8n-nodes-runninghub-api?tab=readme-ov-file#credentials';
13
+ this.properties = [
14
+ {
15
+ displayName: 'API Key',
16
+ name: 'apiKey',
17
+ type: 'string',
18
+ typeOptions: { password: true },
19
+ required: true,
20
+ default: '',
21
+ },
22
+ ];
23
+ this.authenticate = {
24
+ type: 'generic',
25
+ properties: {
26
+ body: {
27
+ apikey: '={{$credentials.apiKey}}',
28
+ extension: 'all'
29
+ },
30
+ },
31
+ };
32
+ this.test = {
33
+ request: {
34
+ baseURL: 'https://www.runninghub.cn',
35
+ url: '/uc/openapi/accountStatus',
36
+ },
37
+ };
38
+ }
39
+ }
40
+ exports.RunninghubApiApi = RunninghubApiApi;
41
+ //# sourceMappingURL=RunninghubApiApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunninghubApiApi.credentials.js","sourceRoot":"","sources":["../../credentials/RunninghubApiApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAE1B,gBAAW,GAAG,oBAAoB,CAAC;QAEnC,SAAI,GAAS;YACZ,KAAK,EAAE,oCAAoC;YAC3C,IAAI,EAAE,mCAAmC;SACzC,CAAC;QAEF,qBAAgB,GAAG,mFAAmF,CAAC;QACvG,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;aACX;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,IAAI,EAAE;oBACL,MAAM,EAAE,0BAA0B;oBAClC,SAAS,EAAE,KAAK;iBAChB;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,2BAA2B;aAChC;SACD,CAAC;IACH,CAAC;CAAA;AAtCD,4CAsCC"}
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#02DBA3;}
7
+ .st1{fill-rule:evenodd;clip-rule:evenodd;}
8
+ </style>
9
+ <g>
10
+ <path class="st0" d="M3.3,0h13.3C18.5,0,20,1.5,20,3.3v13.3c0,1.8-1.5,3.3-3.3,3.3H3.3C1.5,20,0,18.5,0,16.7V3.3C0,1.5,1.5,0,3.3,0
11
+ z"/>
12
+ </g>
13
+ <g>
14
+ <g>
15
+ <path class="st1" d="M6.7,13.3h4.2c2.8,0,5-2.2,5-5s-2.2-5-5-5H6.7c2.8,0,5,2.2,5,5S9.4,13.3,6.7,13.3z"/>
16
+ </g>
17
+ <g>
18
+ <rect x="5" y="3.3" width="3.3" height="13.3"/>
19
+ </g>
20
+ <g transform="matrix(1,0,0,-1,0,33.33260440826416)">
21
+ <path d="M10.8,16.7v4.2h0.8c2.3,0,4.2-1.9,4.2-4.2H10.8z"/>
22
+ </g>
23
+ </g>
24
+ </svg>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#02DBA3;}
7
+ .st1{fill-rule:evenodd;clip-rule:evenodd;}
8
+ </style>
9
+ <g>
10
+ <path class="st0" d="M3.3,0h13.3C18.5,0,20,1.5,20,3.3v13.3c0,1.8-1.5,3.3-3.3,3.3H3.3C1.5,20,0,18.5,0,16.7V3.3C0,1.5,1.5,0,3.3,0
11
+ z"/>
12
+ </g>
13
+ <g>
14
+ <g>
15
+ <path class="st1" d="M6.7,13.3h4.2c2.8,0,5-2.2,5-5s-2.2-5-5-5H6.7c2.8,0,5,2.2,5,5S9.4,13.3,6.7,13.3z"/>
16
+ </g>
17
+ <g>
18
+ <rect x="5" y="3.3" width="3.3" height="13.3"/>
19
+ </g>
20
+ <g transform="matrix(1,0,0,-1,0,33.33260440826416)">
21
+ <path d="M10.8,16.7v4.2h0.8c2.3,0,4.2-1.9,4.2-4.2H10.8z"/>
22
+ </g>
23
+ </g>
24
+ </svg>
@@ -0,0 +1,5 @@
1
+ import { IExecuteFunctions, INodeExecutionData, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class RunninghubApi implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunninghubApi = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const account_1 = require("./resources/account");
6
+ const task_1 = require("./resources/task");
7
+ const quickCreate_1 = require("./resources/quickCreate");
8
+ const aiApp_1 = require("./resources/aiApp");
9
+ const file_1 = require("./resources/file");
10
+ const webhook_1 = require("./resources/webhook");
11
+ const modelApi_1 = require("./resources/modelApi");
12
+ const nativeComfy_1 = require("./resources/nativeComfy");
13
+ const mediaTools_1 = require("./resources/mediaTools");
14
+ const requestRouting_1 = require("./requestRouting");
15
+ class RunninghubApi {
16
+ constructor() {
17
+ this.description = {
18
+ displayName: 'Runninghub Api',
19
+ name: 'runninghubApi',
20
+ icon: {
21
+ light: 'file:../../icons/runninghub-light.svg',
22
+ dark: 'file:../../icons/runninghub-dark.svg',
23
+ },
24
+ group: ['transform'],
25
+ version: 1,
26
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
27
+ description: 'Interact with the Runninghub Api API',
28
+ defaults: {
29
+ name: 'Runninghub Api',
30
+ },
31
+ usableAsTool: true,
32
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
33
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
34
+ credentials: [{ name: 'runninghubApiApi', required: true }],
35
+ requestDefaults: {
36
+ baseURL: 'https://www.runninghub.cn',
37
+ headers: {
38
+ Accept: 'application/json',
39
+ 'Content-Type': 'application/json',
40
+ Host: 'www.runninghub.cn',
41
+ },
42
+ },
43
+ properties: [
44
+ {
45
+ displayName: 'Resource',
46
+ name: 'resource',
47
+ type: 'options',
48
+ noDataExpression: true,
49
+ options: [
50
+ {
51
+ name: 'Account',
52
+ value: 'account',
53
+ },
54
+ {
55
+ name: 'AI App',
56
+ value: 'aiApp',
57
+ },
58
+ {
59
+ name: 'ComfyUI Proxy',
60
+ value: 'nativeComfy',
61
+ },
62
+ {
63
+ name: 'File',
64
+ value: 'file',
65
+ },
66
+ {
67
+ name: 'Media Tool',
68
+ value: 'mediaTools',
69
+ },
70
+ {
71
+ name: 'Model API',
72
+ value: 'modelApi',
73
+ },
74
+ {
75
+ name: 'Quick Create',
76
+ value: 'quickCreate',
77
+ },
78
+ {
79
+ name: 'Task',
80
+ value: 'task',
81
+ },
82
+ {
83
+ name: 'Webhook',
84
+ value: 'webhook',
85
+ },
86
+ ],
87
+ default: 'task',
88
+ },
89
+ ...account_1.accountDescription,
90
+ ...task_1.taskDescription,
91
+ ...quickCreate_1.quickCreateDescription,
92
+ ...aiApp_1.aiAppDescription,
93
+ ...file_1.fileDescription,
94
+ ...modelApi_1.modelApiDescription,
95
+ ...mediaTools_1.mediaToolsDescription,
96
+ ...nativeComfy_1.nativeComfyDescription,
97
+ ...webhook_1.webhookDescription,
98
+ ],
99
+ };
100
+ }
101
+ async execute() {
102
+ const items = this.getInputData();
103
+ const returnData = [];
104
+ const credentials = await this.getCredentials('runninghubApiApi');
105
+ if (!(credentials === null || credentials === void 0 ? void 0 : credentials.apiKey)) {
106
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No valid API key provided');
107
+ }
108
+ const resource = this.getNodeParameter('resource', 0);
109
+ const operation = this.getNodeParameter('operation', 0);
110
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
111
+ try {
112
+ const requestBody = {
113
+ apiKey: `${credentials.apiKey}`,
114
+ };
115
+ const requestContext = {
116
+ executeFunctions: this,
117
+ itemIndex,
118
+ resource,
119
+ operation,
120
+ credentials,
121
+ requestBody,
122
+ };
123
+ const multipartResponse = await (0, requestRouting_1.tryExecuteMultipartUpload)(requestContext);
124
+ if (multipartResponse !== undefined) {
125
+ returnData.push({
126
+ json: multipartResponse,
127
+ });
128
+ continue;
129
+ }
130
+ const requestConfig = (0, requestRouting_1.buildRequestExecutionConfig)(requestContext);
131
+ if (!requestConfig.url) {
132
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported operation "${operation}" for resource "${resource}"`, { itemIndex });
133
+ }
134
+ if (!requestConfig.includeApiKeyInBody) {
135
+ delete requestBody.apiKey;
136
+ }
137
+ const options = {
138
+ baseURL: 'https://www.runninghub.cn',
139
+ url: requestConfig.url,
140
+ headers: {
141
+ Host: 'www.runninghub.cn',
142
+ 'Content-Type': 'application/json',
143
+ },
144
+ method: requestConfig.method,
145
+ };
146
+ if (requestConfig.includeAuthorizationHeader) {
147
+ options.headers = {
148
+ ...options.headers,
149
+ Authorization: `Bearer ${credentials.apiKey}`,
150
+ };
151
+ }
152
+ if (requestConfig.includeBody) {
153
+ options.body = requestBody;
154
+ }
155
+ const responseData = await this.helpers.httpRequest.call(this, options);
156
+ const finalResponseData = (0, requestRouting_1.postProcessResponse)(requestContext, responseData);
157
+ returnData.push({
158
+ json: finalResponseData,
159
+ });
160
+ }
161
+ catch (error) {
162
+ if (this.continueOnFail()) {
163
+ returnData.push({
164
+ json: this.getInputData(itemIndex)[0].json,
165
+ error,
166
+ pairedItem: itemIndex,
167
+ });
168
+ }
169
+ else {
170
+ const nodeError = error;
171
+ if (nodeError.context) {
172
+ nodeError.context.itemIndex = itemIndex;
173
+ throw nodeError;
174
+ }
175
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
176
+ itemIndex,
177
+ });
178
+ }
179
+ }
180
+ }
181
+ return [this.helpers.returnJsonArray(returnData)];
182
+ }
183
+ }
184
+ exports.RunninghubApi = RunninghubApi;
185
+ //# sourceMappingURL=RunninghubApi.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunninghubApi.node.js","sourceRoot":"","sources":["../../../nodes/RunninghubApi/RunninghubApi.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "@difyz9/n8n-nodes-runninghub-api",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Development", "Developer Tools"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://github.com/difyz9/n8n-nodes-runninghub-api?tab=readme-ov-file#credentials"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://github.com/difyz9/n8n-nodes-runninghub-api?tab=readme-ov-file"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,24 @@
1
+ import { type IDataObject, type IExecuteFunctions } from 'n8n-workflow';
2
+ type RunninghubCredentials = {
3
+ apiKey?: string;
4
+ };
5
+ export type RequestRoutingContext = {
6
+ executeFunctions: IExecuteFunctions;
7
+ itemIndex: number;
8
+ resource: string;
9
+ operation: string;
10
+ credentials: RunninghubCredentials;
11
+ requestBody: Record<string, unknown>;
12
+ };
13
+ export type RequestExecutionConfig = {
14
+ url: string;
15
+ method: 'GET' | 'POST';
16
+ includeBody: boolean;
17
+ includeApiKeyInBody: boolean;
18
+ includeAuthorizationHeader: boolean;
19
+ requestBody: Record<string, unknown>;
20
+ };
21
+ export declare function buildRequestExecutionConfig(context: RequestRoutingContext): RequestExecutionConfig;
22
+ export declare function tryExecuteMultipartUpload(context: RequestRoutingContext): Promise<IDataObject | undefined>;
23
+ export declare function postProcessResponse(context: RequestRoutingContext, responseData: IDataObject): IDataObject;
24
+ export {};