n8n-nodes-render-cloud 1.0.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 (78) hide show
  1. package/COMMERCIAL_LICENSE.md +31 -0
  2. package/LICENSE +46 -0
  3. package/LICENSING_FAQ.md +18 -0
  4. package/README.md +439 -0
  5. package/dist/credentials/RenderCloudApi.credentials.d.ts +10 -0
  6. package/dist/credentials/RenderCloudApi.credentials.d.ts.map +1 -0
  7. package/dist/credentials/RenderCloudApi.credentials.js +46 -0
  8. package/dist/credentials/RenderCloudApi.credentials.js.map +1 -0
  9. package/dist/index.d.ts +4 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +26 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/nodes/RenderCloud/RenderCloud.node.d.ts +6 -0
  14. package/dist/nodes/RenderCloud/RenderCloud.node.d.ts.map +1 -0
  15. package/dist/nodes/RenderCloud/RenderCloud.node.js +260 -0
  16. package/dist/nodes/RenderCloud/RenderCloud.node.js.map +1 -0
  17. package/dist/nodes/RenderCloud/RenderCloudTrigger.node.d.ts +13 -0
  18. package/dist/nodes/RenderCloud/RenderCloudTrigger.node.d.ts.map +1 -0
  19. package/dist/nodes/RenderCloud/RenderCloudTrigger.node.js +314 -0
  20. package/dist/nodes/RenderCloud/RenderCloudTrigger.node.js.map +1 -0
  21. package/dist/nodes/RenderCloud/actions/customDomain/customDomain.d.ts +5 -0
  22. package/dist/nodes/RenderCloud/actions/customDomain/customDomain.d.ts.map +1 -0
  23. package/dist/nodes/RenderCloud/actions/customDomain/customDomain.js +260 -0
  24. package/dist/nodes/RenderCloud/actions/customDomain/customDomain.js.map +1 -0
  25. package/dist/nodes/RenderCloud/actions/deploy/deploy.d.ts +5 -0
  26. package/dist/nodes/RenderCloud/actions/deploy/deploy.d.ts.map +1 -0
  27. package/dist/nodes/RenderCloud/actions/deploy/deploy.js +255 -0
  28. package/dist/nodes/RenderCloud/actions/deploy/deploy.js.map +1 -0
  29. package/dist/nodes/RenderCloud/actions/disk/disk.d.ts +5 -0
  30. package/dist/nodes/RenderCloud/actions/disk/disk.d.ts.map +1 -0
  31. package/dist/nodes/RenderCloud/actions/disk/disk.js +323 -0
  32. package/dist/nodes/RenderCloud/actions/disk/disk.js.map +1 -0
  33. package/dist/nodes/RenderCloud/actions/environment/environment.d.ts +5 -0
  34. package/dist/nodes/RenderCloud/actions/environment/environment.d.ts.map +1 -0
  35. package/dist/nodes/RenderCloud/actions/environment/environment.js +300 -0
  36. package/dist/nodes/RenderCloud/actions/environment/environment.js.map +1 -0
  37. package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.d.ts +5 -0
  38. package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.d.ts.map +1 -0
  39. package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.js +506 -0
  40. package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.js.map +1 -0
  41. package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.d.ts +5 -0
  42. package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.d.ts.map +1 -0
  43. package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.js +237 -0
  44. package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.js.map +1 -0
  45. package/dist/nodes/RenderCloud/actions/keyValue/keyValue.d.ts +5 -0
  46. package/dist/nodes/RenderCloud/actions/keyValue/keyValue.d.ts.map +1 -0
  47. package/dist/nodes/RenderCloud/actions/keyValue/keyValue.js +408 -0
  48. package/dist/nodes/RenderCloud/actions/keyValue/keyValue.js.map +1 -0
  49. package/dist/nodes/RenderCloud/actions/postgres/postgres.d.ts +5 -0
  50. package/dist/nodes/RenderCloud/actions/postgres/postgres.d.ts.map +1 -0
  51. package/dist/nodes/RenderCloud/actions/postgres/postgres.js +630 -0
  52. package/dist/nodes/RenderCloud/actions/postgres/postgres.js.map +1 -0
  53. package/dist/nodes/RenderCloud/actions/project/project.d.ts +5 -0
  54. package/dist/nodes/RenderCloud/actions/project/project.d.ts.map +1 -0
  55. package/dist/nodes/RenderCloud/actions/project/project.js +294 -0
  56. package/dist/nodes/RenderCloud/actions/project/project.js.map +1 -0
  57. package/dist/nodes/RenderCloud/actions/secretFile/secretFile.d.ts +5 -0
  58. package/dist/nodes/RenderCloud/actions/secretFile/secretFile.d.ts.map +1 -0
  59. package/dist/nodes/RenderCloud/actions/secretFile/secretFile.js +216 -0
  60. package/dist/nodes/RenderCloud/actions/secretFile/secretFile.js.map +1 -0
  61. package/dist/nodes/RenderCloud/actions/service/service.d.ts +5 -0
  62. package/dist/nodes/RenderCloud/actions/service/service.d.ts.map +1 -0
  63. package/dist/nodes/RenderCloud/actions/service/service.js +875 -0
  64. package/dist/nodes/RenderCloud/actions/service/service.js.map +1 -0
  65. package/dist/nodes/RenderCloud/actions/webhook/webhook.d.ts +5 -0
  66. package/dist/nodes/RenderCloud/actions/webhook/webhook.d.ts.map +1 -0
  67. package/dist/nodes/RenderCloud/actions/webhook/webhook.js +399 -0
  68. package/dist/nodes/RenderCloud/actions/webhook/webhook.js.map +1 -0
  69. package/dist/nodes/RenderCloud/renderCloud.svg +6 -0
  70. package/dist/nodes/RenderCloud/transport/GenericFunctions.d.ts +13 -0
  71. package/dist/nodes/RenderCloud/transport/GenericFunctions.d.ts.map +1 -0
  72. package/dist/nodes/RenderCloud/transport/GenericFunctions.js +140 -0
  73. package/dist/nodes/RenderCloud/transport/GenericFunctions.js.map +1 -0
  74. package/dist/nodes/RenderCloud/utils/types.d.ts +131 -0
  75. package/dist/nodes/RenderCloud/utils/types.d.ts.map +1 -0
  76. package/dist/nodes/RenderCloud/utils/types.js +25 -0
  77. package/dist/nodes/RenderCloud/utils/types.js.map +1 -0
  78. package/package.json +90 -0
@@ -0,0 +1,31 @@
1
+ # Commercial License
2
+
3
+ Velocity BPA, LLC offers commercial licenses for its n8n community nodes.
4
+
5
+ ## When a Commercial License Is Required
6
+
7
+ A commercial license is required if you:
8
+ - Use this node within a SaaS, PaaS, or hosted platform that is sold or monetized
9
+ - Offer this node as part of a managed services or consulting engagement
10
+ - Bundle or redistribute this node with a paid product
11
+ - Resell, sublicense, or white-label this node
12
+ - Embed this node into a commercial automation or integration platform
13
+
14
+ ## What the Commercial License Provides
15
+
16
+ - Legal authorization for commercial deployment
17
+ - Organization-wide usage rights
18
+ - Rights to deploy across multiple environments
19
+ - Optional priority support and maintenance
20
+ - Optional custom development or feature extensions
21
+
22
+ ## Licensing Model
23
+
24
+ Licenses are issued on a per-organization basis.
25
+
26
+ Enterprise, OEM, and platform licensing terms are available upon request.
27
+
28
+ ## Contact
29
+
30
+ Email: licensing@velobpa.com
31
+ Website: https://velobpa.com
package/LICENSE ADDED
@@ -0,0 +1,46 @@
1
+ Business Source License 1.1
2
+
3
+ License text copyright (c) 2017 MariaDB Corporation Ab.
4
+
5
+ Licensor:
6
+ Velocity BPA, LLC
7
+ https://velobpa.com
8
+
9
+ Licensed Work:
10
+ This repository and all source code, documentation, and associated artifacts
11
+ contained herein, including all n8n community nodes published by Velocity BPA.
12
+
13
+ Additional Use Grant:
14
+ You may use, modify, and run the Licensed Work free of charge for:
15
+ - Personal use
16
+ - Educational use
17
+ - Research use
18
+ - Internal business use, provided such use does not involve resale,
19
+ redistribution, or offering the Licensed Work as part of a commercial
20
+ product or service.
21
+
22
+ Commercial Use Restriction:
23
+ Commercial Use of the Licensed Work is prohibited without a valid
24
+ Commercial License issued by the Licensor.
25
+
26
+ Commercial Use includes, but is not limited to:
27
+ - Use of the Licensed Work within any Software-as-a-Service (SaaS),
28
+ Platform-as-a-Service (PaaS), or hosted application that is sold,
29
+ licensed, or monetized in any form
30
+ - Offering the Licensed Work as part of a managed services engagement
31
+ - Bundling or redistributing the Licensed Work with a paid product
32
+ - Reselling, sublicensing, or white-labeling the Licensed Work
33
+ - Embedding the Licensed Work into any commercial automation platform,
34
+ integration product, or solution offering
35
+
36
+ Change Date:
37
+ January 1, 2030
38
+
39
+ Change License:
40
+ Apache License, Version 2.0
41
+
42
+ For commercial licensing inquiries:
43
+ licensing@velobpa.com
44
+
45
+ Business Source License 1.1 full text:
46
+ https://mariadb.com/bsl11/
@@ -0,0 +1,18 @@
1
+ ## Licensing FAQ
2
+
3
+ ### Is internal SaaS infrastructure considered internal use?
4
+ No. If the infrastructure supports a revenue-generating service,
5
+ it is considered commercial use.
6
+
7
+ ### What if customers never see the node?
8
+ Visibility is irrelevant. Revenue enablement constitutes commercial use.
9
+
10
+ ### What if we are a startup?
11
+ Startups are commercial entities and require a commercial license.
12
+
13
+ ### What if we only use one workflow?
14
+ Scope does not change license requirements.
15
+
16
+ ### Do proof-of-concepts require a license?
17
+ Internal, non-customer-facing POCs are permitted.
18
+ Production SaaS deployments require a license.
package/README.md ADDED
@@ -0,0 +1,439 @@
1
+ # n8n-nodes-render-cloud
2
+
3
+ > **[Velocity BPA Licensing Notice]**
4
+ >
5
+ > This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
6
+ >
7
+ > Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
8
+ >
9
+ > For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
10
+
11
+ A comprehensive n8n community node for Render Cloud providing 12 resources and 80+ operations for service deployment, database management, and infrastructure automation. Enables workflow automation for web services, static sites, background workers, cron jobs, PostgreSQL databases, and Redis instances through Render's REST API.
12
+
13
+ ![n8n version](https://img.shields.io/badge/n8n-1.30.0+-blue)
14
+ ![Node.js version](https://img.shields.io/badge/node-18+-green)
15
+ ![License](https://img.shields.io/badge/license-BSL--1.1-blue)
16
+
17
+ ## Features
18
+
19
+ - **12 Resource Categories**: Services, Deploys, Custom Domains, Environment Variables, Secret Files, Projects, Environments, Postgres, Key Value (Redis), Disks, Environment Groups, and Webhooks
20
+ - **80+ Operations**: Full CRUD operations plus specialized actions for each resource type
21
+ - **Webhook Triggers**: Real-time event notifications with signature verification
22
+ - **Cursor-Based Pagination**: Efficient handling of large datasets
23
+ - **Rate Limit Handling**: Built-in rate limit detection and exponential backoff
24
+ - **Database Management**: PostgreSQL operations including PITR recovery, exports, and user management
25
+ - **Infrastructure Automation**: Service scaling, autoscaling configuration, and deployment management
26
+
27
+ ## Installation
28
+
29
+ ### Community Nodes (Recommended)
30
+
31
+ 1. Open n8n
32
+ 2. Go to **Settings** → **Community Nodes**
33
+ 3. Click **Install a community node**
34
+ 4. Enter `n8n-nodes-render-cloud`
35
+ 5. Click **Install**
36
+
37
+ ### Manual Installation
38
+
39
+ ```bash
40
+ # Navigate to your n8n installation directory
41
+ cd ~/.n8n
42
+
43
+ # Install the package
44
+ npm install n8n-nodes-render-cloud
45
+ ```
46
+
47
+ ### Development Installation
48
+
49
+ ```bash
50
+ # Clone the repository
51
+ git clone https://github.com/Velocity-BPA/n8n-nodes-render-cloud.git
52
+ cd n8n-nodes-render-cloud
53
+
54
+ # Install dependencies
55
+ npm install
56
+
57
+ # Build the project
58
+ npm run build
59
+
60
+ # Create symlink to n8n custom nodes directory
61
+ mkdir -p ~/.n8n/custom
62
+ ln -s $(pwd) ~/.n8n/custom/n8n-nodes-render-cloud
63
+
64
+ # Restart n8n
65
+ n8n start
66
+ ```
67
+
68
+ ## Credentials Setup
69
+
70
+ ### Render Cloud API
71
+
72
+ | Property | Type | Required | Description |
73
+ |----------|------|----------|-------------|
74
+ | API Key | String | Yes | API key from Render Dashboard Account Settings |
75
+
76
+ **How to get your API key:**
77
+
78
+ 1. Log into [Render Dashboard](https://dashboard.render.com)
79
+ 2. Navigate to **Account Settings**
80
+ 3. Under **API Keys** section, click **Create API Key**
81
+ 4. Provide a descriptive name for the key
82
+ 5. Copy and securely store the API key (only shown once)
83
+
84
+ ## Resources & Operations
85
+
86
+ ### Service
87
+ Manage web services, static sites, background workers, private services, and cron jobs.
88
+
89
+ | Operation | Description |
90
+ |-----------|-------------|
91
+ | List | List all services with optional filtering |
92
+ | Create | Create a new service |
93
+ | Get | Retrieve a service by ID |
94
+ | Update | Update service configuration |
95
+ | Delete | Delete a service |
96
+ | Suspend | Suspend a running service |
97
+ | Resume | Resume a suspended service |
98
+ | Restart | Restart a service |
99
+ | Scale | Scale instance count |
100
+ | Update Autoscaling | Configure autoscaling settings |
101
+ | Delete Autoscaling | Remove autoscaling configuration |
102
+ | Purge Cache | Purge cache for a web service |
103
+
104
+ ### Deploy
105
+ Trigger and manage service deployments.
106
+
107
+ | Operation | Description |
108
+ |-----------|-------------|
109
+ | List | List deploys for a service |
110
+ | Trigger | Trigger a new deploy |
111
+ | Get | Retrieve deploy details |
112
+ | Cancel | Cancel an in-progress deploy |
113
+ | Rollback | Roll back to a previous deploy |
114
+
115
+ ### Custom Domain
116
+ Manage custom domains for services.
117
+
118
+ | Operation | Description |
119
+ |-----------|-------------|
120
+ | List | List custom domains for a service |
121
+ | Add | Add a custom domain |
122
+ | Get | Retrieve custom domain details |
123
+ | Delete | Remove a custom domain |
124
+ | Verify DNS | Verify DNS configuration |
125
+
126
+ ### Environment Variable
127
+ Manage environment variables for services.
128
+
129
+ | Operation | Description |
130
+ |-----------|-------------|
131
+ | List | List environment variables |
132
+ | Get | Retrieve a specific variable |
133
+ | Add or Update | Add or update a variable |
134
+ | Delete | Delete a variable |
135
+ | Update All | Replace all variables |
136
+
137
+ ### Secret File
138
+ Manage secret files for services.
139
+
140
+ | Operation | Description |
141
+ |-----------|-------------|
142
+ | List | List secret files |
143
+ | Get | Retrieve a specific secret file |
144
+ | Add or Update | Add or update a secret file |
145
+ | Delete | Delete a secret file |
146
+ | Update All | Replace all secret files |
147
+
148
+ ### Project
149
+ Manage Render projects for organizing resources.
150
+
151
+ | Operation | Description |
152
+ |-----------|-------------|
153
+ | List | List all projects |
154
+ | Create | Create a new project |
155
+ | Get | Retrieve project details |
156
+ | Update | Update project configuration |
157
+ | Delete | Delete a project |
158
+
159
+ ### Environment
160
+ Manage environments within projects.
161
+
162
+ | Operation | Description |
163
+ |-----------|-------------|
164
+ | List | List environments in a project |
165
+ | Create | Create a new environment |
166
+ | Get | Retrieve environment details |
167
+ | Update | Update environment configuration |
168
+ | Delete | Delete an environment |
169
+ | Add Resources | Add services/databases to environment |
170
+ | Remove Resources | Remove resources from environment |
171
+
172
+ ### Postgres
173
+ Manage PostgreSQL database instances.
174
+
175
+ | Operation | Description |
176
+ |-----------|-------------|
177
+ | List | List PostgreSQL instances |
178
+ | Create | Create a new instance |
179
+ | Get | Retrieve instance details |
180
+ | Update | Update configuration |
181
+ | Delete | Delete an instance |
182
+ | Get Connection Info | Get connection credentials |
183
+ | Suspend | Suspend an instance |
184
+ | Resume | Resume a suspended instance |
185
+ | Restart | Restart an instance |
186
+ | Failover | Trigger manual failover (HA) |
187
+ | Get Recovery Status | Get PITR recovery status |
188
+ | Trigger Recovery | Restore from a point in time |
189
+ | List Exports | List database exports |
190
+ | Create Export | Create a database export |
191
+ | List Users | List PostgreSQL users |
192
+ | Create User | Create a user |
193
+ | Delete User | Delete a user |
194
+
195
+ ### Key Value (Redis)
196
+ Manage Redis/Key Value instances.
197
+
198
+ | Operation | Description |
199
+ |-----------|-------------|
200
+ | List | List Key Value instances |
201
+ | Create | Create a new instance |
202
+ | Get | Retrieve instance details |
203
+ | Update | Update configuration |
204
+ | Delete | Delete an instance |
205
+ | Get Connection Info | Get connection credentials |
206
+ | Suspend | Suspend an instance |
207
+ | Resume | Resume a suspended instance |
208
+
209
+ ### Disk
210
+ Manage persistent disks and snapshots.
211
+
212
+ | Operation | Description |
213
+ |-----------|-------------|
214
+ | List | List disks for a service |
215
+ | Add | Add a disk to a service |
216
+ | Get | Retrieve disk details |
217
+ | Update | Update disk configuration |
218
+ | Delete | Delete a disk |
219
+ | List Snapshots | List disk snapshots |
220
+ | Restore Snapshot | Restore from a snapshot |
221
+
222
+ ### Environment Group
223
+ Manage shared environment variables and secrets across services.
224
+
225
+ | Operation | Description |
226
+ |-----------|-------------|
227
+ | List | List environment groups |
228
+ | Create | Create a new environment group |
229
+ | Get | Retrieve environment group details |
230
+ | Update | Update environment group |
231
+ | Delete | Delete an environment group |
232
+ | Link Service | Link a service to the group |
233
+ | Unlink Service | Unlink a service from the group |
234
+ | Get Env Var | Get a specific environment variable |
235
+ | Update Env Var | Add or update an environment variable |
236
+ | Delete Env Var | Remove an environment variable |
237
+ | Get Secret File | Get a specific secret file |
238
+ | Update Secret File | Add or update a secret file |
239
+ | Delete Secret File | Remove a secret file |
240
+
241
+ ### Webhook
242
+ Manage webhooks for event notifications.
243
+
244
+ | Operation | Description |
245
+ |-----------|-------------|
246
+ | List | List webhooks for a workspace |
247
+ | Create | Create a new webhook |
248
+ | Get | Retrieve webhook details |
249
+ | Update | Update webhook configuration |
250
+ | Delete | Delete a webhook |
251
+ | List Events | List events delivered to a webhook |
252
+
253
+ ## Trigger Node
254
+
255
+ ### Render Cloud Trigger
256
+
257
+ Starts the workflow when Render Cloud events occur.
258
+
259
+ **Supported Events:**
260
+ - `deploy_started` - Deploy has started
261
+ - `deploy_succeeded` - Deploy completed successfully
262
+ - `deploy_failed` - Deploy failed
263
+ - `deploy_canceled` - Deploy was canceled
264
+ - `service_created` - New service created
265
+ - `service_deleted` - Service deleted
266
+ - `service_suspended` - Service suspended
267
+ - `service_resumed` - Service resumed
268
+ - `server_failed` - Server failure detected
269
+ - `server_available` - Server recovered
270
+ - `certificate_renewed` - TLS certificate renewed
271
+ - `maintenance_started` - Maintenance started
272
+ - `maintenance_completed` - Maintenance completed
273
+
274
+ **Features:**
275
+ - Automatic webhook creation and cleanup
276
+ - Webhook signature verification for security
277
+ - Filter events by specific service IDs
278
+
279
+ ## Usage Examples
280
+
281
+ ### List All Services
282
+
283
+ ```javascript
284
+ // Configure the Render Cloud node
285
+ // Resource: Service
286
+ // Operation: List
287
+ // Returns all services in your workspace
288
+ ```
289
+
290
+ ### Trigger a Deploy
291
+
292
+ ```javascript
293
+ // Resource: Deploy
294
+ // Operation: Trigger
295
+ // Service ID: srv-abc123
296
+ // Clear Cache: true
297
+ ```
298
+
299
+ ### Create a PostgreSQL Database
300
+
301
+ ```javascript
302
+ // Resource: Postgres
303
+ // Operation: Create
304
+ // Owner ID: usr-xxxxx
305
+ // Name: my-database
306
+ // Region: oregon
307
+ // Plan: starter
308
+ // PostgreSQL Version: 16
309
+ ```
310
+
311
+ ### Scale a Service
312
+
313
+ ```javascript
314
+ // Resource: Service
315
+ // Operation: Scale
316
+ // Service ID: srv-abc123
317
+ // Number of Instances: 3
318
+ ```
319
+
320
+ ## Render Concepts
321
+
322
+ ### Service Types
323
+ - **Web Service**: Long-running web applications
324
+ - **Static Site**: Static HTML/CSS/JS hosting
325
+ - **Background Worker**: Long-running background processes
326
+ - **Private Service**: Internal services not exposed to internet
327
+ - **Cron Job**: Scheduled tasks
328
+
329
+ ### Regions
330
+ | Region | Location |
331
+ |--------|----------|
332
+ | oregon | US West (Oregon) |
333
+ | ohio | US East (Ohio) |
334
+ | virginia | US East (Virginia) |
335
+ | frankfurt | Europe (Frankfurt) |
336
+ | singapore | Asia Pacific (Singapore) |
337
+
338
+ ### Plans
339
+ - **free**: Free tier with limitations
340
+ - **starter**: Entry-level paid tier
341
+ - **standard**: Standard production tier
342
+ - **pro**: Professional tier
343
+ - **pro_plus**: Enhanced professional tier
344
+ - **pro_max**: Maximum performance tier
345
+ - **pro_ultra**: Ultimate performance tier
346
+
347
+ ## Error Handling
348
+
349
+ The node handles common Render API errors:
350
+
351
+ | Error Code | Description |
352
+ |------------|-------------|
353
+ | 400 | Bad Request - Invalid parameters |
354
+ | 401 | Unauthorized - Invalid API key |
355
+ | 403 | Forbidden - Insufficient permissions |
356
+ | 404 | Not Found - Resource doesn't exist |
357
+ | 409 | Conflict - Resource state conflict |
358
+ | 422 | Unprocessable - Validation errors |
359
+ | 429 | Rate Limited - Too many requests |
360
+ | 500 | Server Error - Render API issue |
361
+
362
+ Rate limiting is handled automatically with exponential backoff.
363
+
364
+ ## Security Best Practices
365
+
366
+ 1. **Store API keys securely**: Use n8n credentials, never hardcode
367
+ 2. **Use webhook signatures**: Enable signature verification for triggers
368
+ 3. **Limit API key scope**: Create keys with minimal required permissions
369
+ 4. **Rotate keys regularly**: Periodically regenerate API keys
370
+ 5. **Use environment groups**: Share secrets securely across services
371
+
372
+ ## Development
373
+
374
+ ```bash
375
+ # Install dependencies
376
+ npm install
377
+
378
+ # Build the project
379
+ npm run build
380
+
381
+ # Run linting
382
+ npm run lint
383
+
384
+ # Fix linting issues
385
+ npm run lint:fix
386
+
387
+ # Run tests
388
+ npm test
389
+
390
+ # Run tests with coverage
391
+ npm run test:coverage
392
+
393
+ # Watch mode for development
394
+ npm run dev
395
+ ```
396
+
397
+ ## Author
398
+
399
+ **Velocity BPA**
400
+ - Website: [velobpa.com](https://velobpa.com)
401
+ - GitHub: [Velocity-BPA](https://github.com/Velocity-BPA)
402
+
403
+ ## Licensing
404
+
405
+ This n8n community node is licensed under the **Business Source License 1.1**.
406
+
407
+ ### Free Use
408
+ Permitted for personal, educational, research, and internal business use.
409
+
410
+ ### Commercial Use
411
+ Use of this node within any SaaS, PaaS, hosted platform, managed service,
412
+ or paid automation offering requires a commercial license.
413
+
414
+ For licensing inquiries:
415
+ **licensing@velobpa.com**
416
+
417
+ See [LICENSE](LICENSE), [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md), and [LICENSING_FAQ.md](LICENSING_FAQ.md) for details.
418
+
419
+ ## Contributing
420
+
421
+ Contributions are welcome! Please follow these steps:
422
+
423
+ 1. Fork the repository
424
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
425
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
426
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
427
+ 5. Open a Pull Request
428
+
429
+ ## Support
430
+
431
+ - **Issues**: [GitHub Issues](https://github.com/Velocity-BPA/n8n-nodes-render-cloud/issues)
432
+ - **Documentation**: [Render API Docs](https://api-docs.render.com/)
433
+ - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)
434
+
435
+ ## Acknowledgments
436
+
437
+ - [Render](https://render.com) for providing an excellent cloud platform and API
438
+ - [n8n](https://n8n.io) for the workflow automation platform
439
+ - The n8n community for inspiration and support
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class RenderCloudApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
10
+ //# sourceMappingURL=RenderCloudApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderCloudApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/RenderCloudApi.credentials.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,cAAe,YAAW,eAAe;IACrD,IAAI,SAAoB;IACxB,WAAW,SAAsB;IACjC,gBAAgB,SAAiC;IACjD,UAAU,EAAE,eAAe,EAAE,CAY3B;IAEF,YAAY,EAAE,oBAAoB,CAOhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACF"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Velocity BPA, LLC
4
+ * Licensed under the Business Source License 1.1
5
+ * Commercial use requires a separate commercial license.
6
+ * See LICENSE file for details.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RenderCloudApi = void 0;
10
+ class RenderCloudApi {
11
+ constructor() {
12
+ this.name = 'renderCloudApi';
13
+ this.displayName = 'Render Cloud API';
14
+ this.documentationUrl = 'https://render.com/docs/api';
15
+ this.properties = [
16
+ {
17
+ displayName: 'API Key',
18
+ name: 'apiKey',
19
+ type: 'string',
20
+ typeOptions: {
21
+ password: true,
22
+ },
23
+ default: '',
24
+ required: true,
25
+ description: 'API key from Render Dashboard Account Settings. Navigate to Account Settings > API Keys to create one.',
26
+ },
27
+ ];
28
+ this.authenticate = {
29
+ type: 'generic',
30
+ properties: {
31
+ headers: {
32
+ Authorization: '=Bearer {{$credentials.apiKey}}',
33
+ },
34
+ },
35
+ };
36
+ this.test = {
37
+ request: {
38
+ baseURL: 'https://api.render.com/v1',
39
+ url: '/owners',
40
+ method: 'GET',
41
+ },
42
+ };
43
+ }
44
+ }
45
+ exports.RenderCloudApi = RenderCloudApi;
46
+ //# sourceMappingURL=RenderCloudApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderCloudApi.credentials.js","sourceRoot":"","sources":["../../credentials/RenderCloudApi.credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,MAAa,cAAc;IAA3B;QACC,SAAI,GAAG,gBAAgB,CAAC;QACxB,gBAAW,GAAG,kBAAkB,CAAC;QACjC,qBAAgB,GAAG,6BAA6B,CAAC;QACjD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wGAAwG;aACrH;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAlCD,wCAkCC"}
@@ -0,0 +1,4 @@
1
+ export * from './credentials/RenderCloudApi.credentials';
2
+ export * from './nodes/RenderCloud/RenderCloud.node';
3
+ export * from './nodes/RenderCloud/RenderCloudTrigger.node';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAOA,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Velocity BPA, LLC
4
+ * Licensed under the Business Source License 1.1
5
+ * Commercial use requires a separate commercial license.
6
+ * See LICENSE file for details.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./credentials/RenderCloudApi.credentials"), exports);
24
+ __exportStar(require("./nodes/RenderCloud/RenderCloud.node"), exports);
25
+ __exportStar(require("./nodes/RenderCloud/RenderCloudTrigger.node"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2EAAyD;AACzD,uEAAqD;AACrD,8EAA4D"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class RenderCloud implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
6
+ //# sourceMappingURL=RenderCloud.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderCloud.node.d.ts","sourceRoot":"","sources":["../../../nodes/RenderCloud/RenderCloud.node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AA2BtB,qBAAa,WAAY,YAAW,SAAS;IAC5C,WAAW,EAAE,oBAAoB,CA0I/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAuEvE"}