n8n-nodes-do 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/LICENSE.md +19 -0
- package/README.md +350 -0
- package/dist/credentials/DigitalOceanApi.credentials.d.ts +10 -0
- package/dist/credentials/DigitalOceanApi.credentials.js +41 -0
- package/dist/credentials/DigitalOceanApi.credentials.js.map +1 -0
- package/dist/icons/github.dark.svg +3 -0
- package/dist/icons/github.svg +3 -0
- package/dist/nodes/DigitalOcean/DigitalOcean.node.d.ts +22 -0
- package/dist/nodes/DigitalOcean/DigitalOcean.node.js +1648 -0
- package/dist/nodes/DigitalOcean/DigitalOcean.node.js.map +1 -0
- package/dist/nodes/DigitalOcean/digitalocean.svg +18 -0
- package/dist/package.json +58 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +58 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# n8n-nodes-do
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**Official n8n community node for [DigitalOcean](https://www.digitalocean.com/)**
|
|
6
|
+
|
|
7
|
+
Manage your DigitalOcean Droplets, Volumes, Databases, Kubernetes clusters, and more — all from your n8n workflows.
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/n8n-nodes-do)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://docs.n8n.io/integrations/community-nodes/)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Features
|
|
18
|
+
|
|
19
|
+
- **13 Resources** — Droplets, Volumes, Databases, Domains, Images, Kubernetes, Load Balancers, Projects, Reserved IPs, Snapshots, SSH Keys, VPCs, Account
|
|
20
|
+
- **50+ Operations** — Complete CRUD coverage for all resources
|
|
21
|
+
- **Auto-authentication** — Uses Personal Access Token (Bearer token) authentication
|
|
22
|
+
- **Pagination** — Automatically handles paginated responses for list operations
|
|
23
|
+
- **Expression Support** — All ID fields support n8n expressions (`{{ $json.dropletId }}`)
|
|
24
|
+
- **Dynamic Dropdowns** — Resources load dynamically from your DigitalOcean account
|
|
25
|
+
- **AI Tool Ready** — Node is marked `usableAsTool: true` for use in AI agent workflows
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
### In n8n Cloud or Self-hosted n8n
|
|
32
|
+
|
|
33
|
+
1. Go to **Settings → Community Nodes**
|
|
34
|
+
2. Click **Install**
|
|
35
|
+
3. Enter: `n8n-nodes-do`
|
|
36
|
+
4. Click **Install**
|
|
37
|
+
5. Restart n8n if prompted
|
|
38
|
+
|
|
39
|
+
### Via npm (self-hosted)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm install n8n-nodes-do
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Authentication
|
|
48
|
+
|
|
49
|
+
This node uses DigitalOcean Personal Access Token authentication. You'll need:
|
|
50
|
+
|
|
51
|
+
| Field | Description |
|
|
52
|
+
|-------|-------------|
|
|
53
|
+
| **Personal Access Token** | Your DigitalOcean API token |
|
|
54
|
+
|
|
55
|
+
### How to get your credentials:
|
|
56
|
+
|
|
57
|
+
1. Log in to [cloud.digitalocean.com](https://cloud.digitalocean.com/)
|
|
58
|
+
2. Navigate to **API → Tokens/Keys**
|
|
59
|
+
3. Click **Generate New Token**
|
|
60
|
+
4. Give it a name and select **Read** and **Write** scopes
|
|
61
|
+
5. Copy the token (you won't be able to see it again!)
|
|
62
|
+
|
|
63
|
+
> **Note:** Keep your token secure! It provides full access to your DigitalOcean account.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Resources & Operations
|
|
68
|
+
|
|
69
|
+
### Account
|
|
70
|
+
|
|
71
|
+
| Operation | Description |
|
|
72
|
+
|-----------|-------------|
|
|
73
|
+
| **Get** | Get account information |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Droplet
|
|
78
|
+
|
|
79
|
+
Manage your DigitalOcean virtual machines.
|
|
80
|
+
|
|
81
|
+
| Operation | Description |
|
|
82
|
+
|-----------|-------------|
|
|
83
|
+
| **Get Many** | List all Droplets |
|
|
84
|
+
| **Get** | Get a specific Droplet by ID |
|
|
85
|
+
| **Create** | Create a new Droplet |
|
|
86
|
+
| **Delete** | Delete a Droplet |
|
|
87
|
+
| **Reboot** | Reboot a Droplet |
|
|
88
|
+
| **Shutdown** | Shutdown a Droplet |
|
|
89
|
+
| **Power On** | Power on a Droplet |
|
|
90
|
+
| **Power Off** | Power off a Droplet |
|
|
91
|
+
|
|
92
|
+
**Parameters for Create:**
|
|
93
|
+
- Name (hostname)
|
|
94
|
+
- Region (e.g., nyc1, sfo3, ams3)
|
|
95
|
+
- Size (e.g., s-1vcpu-1gb, s-2vcpu-4gb)
|
|
96
|
+
- Image (OS distribution or custom image)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Volume
|
|
101
|
+
|
|
102
|
+
Manage block storage volumes.
|
|
103
|
+
|
|
104
|
+
| Operation | Description |
|
|
105
|
+
|-----------|-------------|
|
|
106
|
+
| **Get Many** | List all volumes |
|
|
107
|
+
| **Get** | Get a specific volume by ID |
|
|
108
|
+
| **Create** | Create a new volume |
|
|
109
|
+
| **Delete** | Delete a volume |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### Database
|
|
114
|
+
|
|
115
|
+
Manage managed database clusters.
|
|
116
|
+
|
|
117
|
+
| Operation | Description |
|
|
118
|
+
|-----------|-------------|
|
|
119
|
+
| **Get Many** | List all database clusters |
|
|
120
|
+
| **Get** | Get a specific database cluster |
|
|
121
|
+
| **Create** | Create a new database cluster |
|
|
122
|
+
| **Delete** | Delete a database cluster |
|
|
123
|
+
|
|
124
|
+
**Supported Engines:** PostgreSQL, MySQL, MongoDB, Kafka, Valkey, OpenSearch
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### Domain
|
|
129
|
+
|
|
130
|
+
Manage domains and DNS records.
|
|
131
|
+
|
|
132
|
+
| Operation | Description |
|
|
133
|
+
|-----------|-------------|
|
|
134
|
+
| **Get Many** | List all domains |
|
|
135
|
+
| **Get** | Get a specific domain |
|
|
136
|
+
| **Create** | Create a new domain |
|
|
137
|
+
| **Delete** | Delete a domain |
|
|
138
|
+
| **Get Records** | List DNS records for a domain |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Image
|
|
143
|
+
|
|
144
|
+
Manage images (distributions and snapshots).
|
|
145
|
+
|
|
146
|
+
| Operation | Description |
|
|
147
|
+
|-----------|-------------|
|
|
148
|
+
| **Get Many** | List all images |
|
|
149
|
+
| **Get** | Get a specific image |
|
|
150
|
+
| **Delete** | Delete an image |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Kubernetes (DOKS)
|
|
155
|
+
|
|
156
|
+
Manage DigitalOcean Kubernetes clusters.
|
|
157
|
+
|
|
158
|
+
| Operation | Description |
|
|
159
|
+
|-----------|-------------|
|
|
160
|
+
| **Get Many Clusters** | List all Kubernetes clusters |
|
|
161
|
+
| **Get Cluster** | Get a specific cluster |
|
|
162
|
+
| **Create Cluster** | Create a new cluster |
|
|
163
|
+
| **Delete Cluster** | Delete a cluster |
|
|
164
|
+
| **Get Kubeconfig** | Get kubeconfig for a cluster |
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### Load Balancer
|
|
169
|
+
|
|
170
|
+
Manage load balancers.
|
|
171
|
+
|
|
172
|
+
| Operation | Description |
|
|
173
|
+
|-----------|-------------|
|
|
174
|
+
| **Get Many** | List all load balancers |
|
|
175
|
+
| **Get** | Get a specific load balancer |
|
|
176
|
+
| **Create** | Create a load balancer |
|
|
177
|
+
| **Delete** | Delete a load balancer |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### Project
|
|
182
|
+
|
|
183
|
+
Organize resources into projects.
|
|
184
|
+
|
|
185
|
+
| Operation | Description |
|
|
186
|
+
|-----------|-------------|
|
|
187
|
+
| **Get Many** | List all projects |
|
|
188
|
+
| **Get** | Get a specific project |
|
|
189
|
+
| **Create** | Create a new project |
|
|
190
|
+
| **Delete** | Delete a project |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
### Reserved IP
|
|
195
|
+
|
|
196
|
+
Manage reserved (static) IP addresses.
|
|
197
|
+
|
|
198
|
+
| Operation | Description |
|
|
199
|
+
|-----------|-------------|
|
|
200
|
+
| **Get Many** | List all reserved IPs |
|
|
201
|
+
| **Get** | Get a specific reserved IP |
|
|
202
|
+
| **Create** | Create a reserved IP |
|
|
203
|
+
| **Delete** | Delete a reserved IP |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### Snapshot
|
|
208
|
+
|
|
209
|
+
Manage snapshots of Droplets and volumes.
|
|
210
|
+
|
|
211
|
+
| Operation | Description |
|
|
212
|
+
|-----------|-------------|
|
|
213
|
+
| **Get Many** | List all snapshots |
|
|
214
|
+
| **Get** | Get a specific snapshot |
|
|
215
|
+
| **Delete** | Delete a snapshot |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### SSH Key
|
|
220
|
+
|
|
221
|
+
Manage SSH keys for Droplet access.
|
|
222
|
+
|
|
223
|
+
| Operation | Description |
|
|
224
|
+
|-----------|-------------|
|
|
225
|
+
| **Get Many** | List all SSH keys |
|
|
226
|
+
| **Get** | Get a specific SSH key |
|
|
227
|
+
| **Create** | Add a new SSH key |
|
|
228
|
+
| **Delete** | Delete an SSH key |
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### VPC
|
|
233
|
+
|
|
234
|
+
Manage Virtual Private Clouds.
|
|
235
|
+
|
|
236
|
+
| Operation | Description |
|
|
237
|
+
|-----------|-------------|
|
|
238
|
+
| **Get Many** | List all VPCs |
|
|
239
|
+
| **Get** | Get a specific VPC |
|
|
240
|
+
| **Create** | Create a new VPC |
|
|
241
|
+
| **Delete** | Delete a VPC |
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Usage Examples
|
|
246
|
+
|
|
247
|
+
### Example 1: Create a Droplet
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
[DigitalOcean - Create Droplet]
|
|
251
|
+
Name: "my-server"
|
|
252
|
+
Region: "nyc1"
|
|
253
|
+
Size: "s-1vcpu-1gb"
|
|
254
|
+
Image: "ubuntu-22-04-x64"
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Example 2: List All Droplets and Shutdown Running Ones
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
[DigitalOcean - Get Many Droplets]
|
|
261
|
+
↓
|
|
262
|
+
[If: status = "running"]
|
|
263
|
+
↓
|
|
264
|
+
[DigitalOcean - Shutdown]
|
|
265
|
+
Droplet ID: {{ $json.id }}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Example 3: Create Daily Database Backups
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
[Schedule Trigger - Daily at 2 AM]
|
|
272
|
+
↓
|
|
273
|
+
[DigitalOcean - Get Many Databases]
|
|
274
|
+
↓
|
|
275
|
+
[DigitalOcean - Create Snapshot]
|
|
276
|
+
(for each database)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Expression Reference
|
|
282
|
+
|
|
283
|
+
When chaining nodes, use these expressions:
|
|
284
|
+
|
|
285
|
+
| Field | Expression |
|
|
286
|
+
|-------|-----------|
|
|
287
|
+
| Droplet ID | `{{ $json.id }}` |
|
|
288
|
+
| Droplet Name | `{{ $json.name }}` |
|
|
289
|
+
| Droplet Status | `{{ $json.status }}` |
|
|
290
|
+
| Region | `{{ $json.region.slug }}` |
|
|
291
|
+
| IP Address | `{{ $json.networks.v4[0].ip_address }}` |
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Regions
|
|
296
|
+
|
|
297
|
+
DigitalOcean supports the following regions:
|
|
298
|
+
|
|
299
|
+
| Code | Location |
|
|
300
|
+
|------|----------|
|
|
301
|
+
| nyc1, nyc2, nyc3 | New York, USA |
|
|
302
|
+
| sfo2, sfo3 | San Francisco, USA |
|
|
303
|
+
| tor1 | Toronto, Canada |
|
|
304
|
+
| lon1 | London, UK |
|
|
305
|
+
| fra1 | Frankfurt, Germany |
|
|
306
|
+
| ams2, ams3 | Amsterdam, Netherlands |
|
|
307
|
+
| sgp1 | Singapore |
|
|
308
|
+
| blr1 | Bangalore, India |
|
|
309
|
+
| syd1 | Sydney, Australia |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Troubleshooting
|
|
314
|
+
|
|
315
|
+
### Authentication fails
|
|
316
|
+
|
|
317
|
+
- Double-check your Personal Access Token
|
|
318
|
+
- Make sure the token has **Read** and **Write** scopes
|
|
319
|
+
- Verify the token hasn't expired or been revoked
|
|
320
|
+
|
|
321
|
+
### Droplet ID field not visible
|
|
322
|
+
|
|
323
|
+
- Confirm **Resource** = `Droplet` and the **Operation** requires an ID
|
|
324
|
+
- The ID field appears for operations like Get, Delete, Reboot, etc.
|
|
325
|
+
|
|
326
|
+
### Node not found after installation
|
|
327
|
+
|
|
328
|
+
1. Make sure you installed `n8n-nodes-do`
|
|
329
|
+
2. Restart n8n after installation
|
|
330
|
+
3. Check **Settings → Community Nodes** to confirm it's listed
|
|
331
|
+
|
|
332
|
+
### Rate Limits
|
|
333
|
+
|
|
334
|
+
DigitalOcean API has rate limits. If you encounter rate limit errors:
|
|
335
|
+
- Reduce the frequency of API calls
|
|
336
|
+
- Use the `limit` parameter to fetch smaller batches
|
|
337
|
+
- Consider using wait nodes between operations
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## License
|
|
342
|
+
|
|
343
|
+
[MIT](LICENSE.md)
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Credits
|
|
348
|
+
|
|
349
|
+
Built with the [n8n Node Starter](https://github.com/n8n-io/n8n-nodes-starter).
|
|
350
|
+
Uses the [DigitalOcean API v2](https://docs.digitalocean.com/reference/api/).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class DigitalOceanApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
icon: any;
|
|
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.DigitalOceanApi = void 0;
|
|
4
|
+
class DigitalOceanApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'digitalOceanApi';
|
|
7
|
+
this.displayName = 'DigitalOcean API';
|
|
8
|
+
this.documentationUrl = 'https://docs.digitalocean.com/reference/api/';
|
|
9
|
+
this.icon = 'file:digitalocean.svg';
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Personal Access Token',
|
|
13
|
+
name: 'accessToken',
|
|
14
|
+
type: 'string',
|
|
15
|
+
typeOptions: {
|
|
16
|
+
password: true,
|
|
17
|
+
},
|
|
18
|
+
default: '',
|
|
19
|
+
required: true,
|
|
20
|
+
description: 'Your DigitalOcean Personal Access Token. Generate one at https://cloud.digitalocean.com/account/api/tokens',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
this.authenticate = {
|
|
24
|
+
type: 'generic',
|
|
25
|
+
properties: {
|
|
26
|
+
headers: {
|
|
27
|
+
Authorization: '=Bearer {{$credentials.accessToken}}',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
this.test = {
|
|
32
|
+
request: {
|
|
33
|
+
baseURL: 'https://api.digitalocean.com/v2',
|
|
34
|
+
url: '/account',
|
|
35
|
+
method: 'GET',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.DigitalOceanApi = DigitalOceanApi;
|
|
41
|
+
//# sourceMappingURL=DigitalOceanApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DigitalOceanApi.credentials.js","sourceRoot":"","sources":["../../credentials/DigitalOceanApi.credentials.ts"],"names":[],"mappings":";;;AASA,MAAa,eAAe;IAA5B;QACC,SAAI,GAAG,iBAAiB,CAAC;QACzB,gBAAW,GAAG,kBAAkB,CAAC;QACjC,qBAAgB,GAAG,8CAA8C,CAAC;QAClE,SAAI,GAAG,uBAA8B,CAAC;QACtC,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,4GAA4G;aACzH;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,sCAAsC;iBACrD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,iCAAiC;gBAC1C,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAnCD,0CAmCC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="white"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="#24292F"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class DigitalOcean implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getDroplets(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
getVolumes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
8
|
+
getDatabases(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
9
|
+
getDomains(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
10
|
+
getImages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
11
|
+
getClusters(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
12
|
+
getLoadBalancers(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
13
|
+
getProjects(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
14
|
+
getReservedIps(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
15
|
+
getSnapshots(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
16
|
+
getSshKeys(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
17
|
+
getVpcs(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
18
|
+
getFirewalls(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
22
|
+
}
|