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.
- package/COMMERCIAL_LICENSE.md +31 -0
- package/LICENSE +46 -0
- package/LICENSING_FAQ.md +18 -0
- package/README.md +439 -0
- package/dist/credentials/RenderCloudApi.credentials.d.ts +10 -0
- package/dist/credentials/RenderCloudApi.credentials.d.ts.map +1 -0
- package/dist/credentials/RenderCloudApi.credentials.js +46 -0
- package/dist/credentials/RenderCloudApi.credentials.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/RenderCloud/RenderCloud.node.d.ts +6 -0
- package/dist/nodes/RenderCloud/RenderCloud.node.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/RenderCloud.node.js +260 -0
- package/dist/nodes/RenderCloud/RenderCloud.node.js.map +1 -0
- package/dist/nodes/RenderCloud/RenderCloudTrigger.node.d.ts +13 -0
- package/dist/nodes/RenderCloud/RenderCloudTrigger.node.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/RenderCloudTrigger.node.js +314 -0
- package/dist/nodes/RenderCloud/RenderCloudTrigger.node.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/customDomain/customDomain.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/customDomain/customDomain.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/customDomain/customDomain.js +260 -0
- package/dist/nodes/RenderCloud/actions/customDomain/customDomain.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/deploy/deploy.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/deploy/deploy.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/deploy/deploy.js +255 -0
- package/dist/nodes/RenderCloud/actions/deploy/deploy.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/disk/disk.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/disk/disk.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/disk/disk.js +323 -0
- package/dist/nodes/RenderCloud/actions/disk/disk.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/environment/environment.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/environment/environment.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/environment/environment.js +300 -0
- package/dist/nodes/RenderCloud/actions/environment/environment.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.js +506 -0
- package/dist/nodes/RenderCloud/actions/environmentGroup/environmentGroup.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.js +237 -0
- package/dist/nodes/RenderCloud/actions/environmentVariable/environmentVariable.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/keyValue/keyValue.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/keyValue/keyValue.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/keyValue/keyValue.js +408 -0
- package/dist/nodes/RenderCloud/actions/keyValue/keyValue.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/postgres/postgres.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/postgres/postgres.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/postgres/postgres.js +630 -0
- package/dist/nodes/RenderCloud/actions/postgres/postgres.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/project/project.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/project/project.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/project/project.js +294 -0
- package/dist/nodes/RenderCloud/actions/project/project.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/secretFile/secretFile.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/secretFile/secretFile.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/secretFile/secretFile.js +216 -0
- package/dist/nodes/RenderCloud/actions/secretFile/secretFile.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/service/service.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/service/service.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/service/service.js +875 -0
- package/dist/nodes/RenderCloud/actions/service/service.js.map +1 -0
- package/dist/nodes/RenderCloud/actions/webhook/webhook.d.ts +5 -0
- package/dist/nodes/RenderCloud/actions/webhook/webhook.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/actions/webhook/webhook.js +399 -0
- package/dist/nodes/RenderCloud/actions/webhook/webhook.js.map +1 -0
- package/dist/nodes/RenderCloud/renderCloud.svg +6 -0
- package/dist/nodes/RenderCloud/transport/GenericFunctions.d.ts +13 -0
- package/dist/nodes/RenderCloud/transport/GenericFunctions.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/transport/GenericFunctions.js +140 -0
- package/dist/nodes/RenderCloud/transport/GenericFunctions.js.map +1 -0
- package/dist/nodes/RenderCloud/utils/types.d.ts +131 -0
- package/dist/nodes/RenderCloud/utils/types.d.ts.map +1 -0
- package/dist/nodes/RenderCloud/utils/types.js +25 -0
- package/dist/nodes/RenderCloud/utils/types.js.map +1 -0
- 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/
|
package/LICENSING_FAQ.md
ADDED
|
@@ -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
|
+

|
|
14
|
+

|
|
15
|
+

|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|