@dgalichet/n8n-nodes-aws-sdk-v3 0.1.2
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 +21 -0
- package/README.md +162 -0
- package/dist/credentials/AwsSdkV3Api.credentials.d.ts +11 -0
- package/dist/credentials/AwsSdkV3Api.credentials.js +85 -0
- package/dist/credentials/AwsSdkV3Api.credentials.js.map +1 -0
- package/dist/credentials/aws.dark.svg +10 -0
- package/dist/credentials/aws.svg +10 -0
- package/dist/nodes/AwsCode/AwsCode.node.d.ts +10 -0
- package/dist/nodes/AwsCode/AwsCode.node.js +284 -0
- package/dist/nodes/AwsCode/AwsCode.node.js.map +1 -0
- package/dist/nodes/AwsCode/AwsCode.node.json +18 -0
- package/dist/nodes/AwsCode/aws.dark.svg +10 -0
- package/dist/nodes/AwsCode/aws.svg +10 -0
- package/dist/package.json +63 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 David Galichet
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# n8n-nodes-aws-sdk-v3
|
|
2
|
+
|
|
3
|
+
This is an n8n community node that allows you to execute custom JavaScript code with pre-configured AWS SDK v3 clients (S3, Bedrock, SSM) in your n8n workflows.
|
|
4
|
+
|
|
5
|
+
**Note:** This node uses external dependencies (AWS SDK v3) and is only compatible with self-hosted n8n installations. It cannot be used on n8n Cloud.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.
|
|
8
|
+
|
|
9
|
+
[Installation](#installation)
|
|
10
|
+
[Operations](#operations)
|
|
11
|
+
[Credentials](#credentials)
|
|
12
|
+
[Compatibility](#compatibility)
|
|
13
|
+
[Usage](#usage)
|
|
14
|
+
[Resources](#resources)
|
|
15
|
+
[Version history](#version-history)
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install n8n-nodes-aws-sdk-v3
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Or install it directly in your n8n instance via the Community Nodes settings.
|
|
26
|
+
|
|
27
|
+
## Operations
|
|
28
|
+
|
|
29
|
+
The **AWS Code** node provides a code editor where you can write custom JavaScript code with access to:
|
|
30
|
+
|
|
31
|
+
### Pre-configured AWS Clients
|
|
32
|
+
|
|
33
|
+
- `$s3` - Amazon S3 Client
|
|
34
|
+
- `$bedrock` - Amazon Bedrock Runtime Client
|
|
35
|
+
- `$ssm` - AWS Systems Manager (SSM) Client
|
|
36
|
+
|
|
37
|
+
### Available AWS SDK Commands
|
|
38
|
+
|
|
39
|
+
**S3 Commands:**
|
|
40
|
+
- `ListBucketsCommand`
|
|
41
|
+
- `GetObjectCommand`
|
|
42
|
+
- `PutObjectCommand`
|
|
43
|
+
- `DeleteObjectCommand`
|
|
44
|
+
- `CopyObjectCommand`
|
|
45
|
+
- `HeadObjectCommand`
|
|
46
|
+
- `ListObjectsV2Command`
|
|
47
|
+
- `CreateBucketCommand`
|
|
48
|
+
- `DeleteBucketCommand`
|
|
49
|
+
|
|
50
|
+
**Bedrock Commands:**
|
|
51
|
+
- `InvokeModelCommand`
|
|
52
|
+
- `InvokeModelWithResponseStreamCommand`
|
|
53
|
+
- `ConverseCommand`
|
|
54
|
+
- `ConverseStreamCommand`
|
|
55
|
+
|
|
56
|
+
**SSM Commands:**
|
|
57
|
+
- `GetParameterCommand`
|
|
58
|
+
- `GetParametersCommand`
|
|
59
|
+
- `GetParametersByPathCommand`
|
|
60
|
+
- `PutParameterCommand`
|
|
61
|
+
- `DeleteParameterCommand`
|
|
62
|
+
- `DeleteParametersCommand`
|
|
63
|
+
|
|
64
|
+
### Execution Modes
|
|
65
|
+
|
|
66
|
+
- **Run Once for All Items** - Execute the code once with access to all input items via `$items`
|
|
67
|
+
- **Run Once for Each Item** - Execute the code once for each input item via `$item`
|
|
68
|
+
|
|
69
|
+
## Credentials
|
|
70
|
+
|
|
71
|
+
Create **AWS SDK V3 API** credentials with:
|
|
72
|
+
|
|
73
|
+
| Field | Description |
|
|
74
|
+
|-------|-------------|
|
|
75
|
+
| Access Key ID | Your AWS Access Key ID |
|
|
76
|
+
| Secret Access Key | Your AWS Secret Access Key |
|
|
77
|
+
| Region | AWS region (e.g., `eu-west-1`, `us-east-1`) |
|
|
78
|
+
| Session Token | Optional - for temporary credentials (STS) |
|
|
79
|
+
|
|
80
|
+
## Compatibility
|
|
81
|
+
|
|
82
|
+
- Requires n8n version 1.0.0 or later
|
|
83
|
+
- **Self-hosted n8n only** - Not compatible with n8n Cloud
|
|
84
|
+
|
|
85
|
+
## Usage
|
|
86
|
+
|
|
87
|
+
### Example: List S3 Buckets
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
const response = await $s3.send(new ListBucketsCommand({}));
|
|
91
|
+
return response.Buckets.map(b => ({ json: { name: b.Name } }));
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Example: Get SSM Parameter
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
const response = await $ssm.send(new GetParameterCommand({
|
|
98
|
+
Name: '/my/parameter/path',
|
|
99
|
+
WithDecryption: true
|
|
100
|
+
}));
|
|
101
|
+
return [{ json: { value: response.Parameter.Value } }];
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Example: Invoke Bedrock Model (Claude)
|
|
105
|
+
|
|
106
|
+
```javascript
|
|
107
|
+
const response = await $bedrock.send(new ConverseCommand({
|
|
108
|
+
modelId: 'anthropic.claude-3-sonnet-20240229-v1:0',
|
|
109
|
+
messages: [
|
|
110
|
+
{
|
|
111
|
+
role: 'user',
|
|
112
|
+
content: [{ text: $item.json.prompt }]
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}));
|
|
116
|
+
|
|
117
|
+
return [{
|
|
118
|
+
json: {
|
|
119
|
+
response: response.output.message.content[0].text
|
|
120
|
+
}
|
|
121
|
+
}];
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Example: Upload to S3
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
const response = await $s3.send(new PutObjectCommand({
|
|
128
|
+
Bucket: 'my-bucket',
|
|
129
|
+
Key: `files/${$item.json.filename}`,
|
|
130
|
+
Body: $item.json.content,
|
|
131
|
+
ContentType: 'text/plain'
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
return [{ json: { success: true, etag: response.ETag } }];
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Available Variables
|
|
138
|
+
|
|
139
|
+
| Variable | Description |
|
|
140
|
+
|----------|-------------|
|
|
141
|
+
| `$s3` | Pre-configured S3Client |
|
|
142
|
+
| `$bedrock` | Pre-configured BedrockRuntimeClient |
|
|
143
|
+
| `$ssm` | Pre-configured SSMClient |
|
|
144
|
+
| `$items` | All input items (array) |
|
|
145
|
+
| `$item` | Current item (in "Run Once for Each Item" mode) |
|
|
146
|
+
| `$itemIndex` | Current item index |
|
|
147
|
+
|
|
148
|
+
## Resources
|
|
149
|
+
|
|
150
|
+
- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
151
|
+
- [AWS SDK for JavaScript v3 Documentation](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/)
|
|
152
|
+
- [Amazon S3 Documentation](https://docs.aws.amazon.com/s3/)
|
|
153
|
+
- [Amazon Bedrock Documentation](https://docs.aws.amazon.com/bedrock/)
|
|
154
|
+
- [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/)
|
|
155
|
+
|
|
156
|
+
## Version history
|
|
157
|
+
|
|
158
|
+
### 0.1.0
|
|
159
|
+
|
|
160
|
+
- Initial release
|
|
161
|
+
- AWS Code node with S3, Bedrock, and SSM support
|
|
162
|
+
- Custom credentials for AWS SDK v3
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class AwsSdkV3Api implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
icon: {
|
|
7
|
+
readonly light: "file:aws.svg";
|
|
8
|
+
readonly dark: "file:aws.dark.svg";
|
|
9
|
+
};
|
|
10
|
+
properties: INodeProperties[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsSdkV3Api = void 0;
|
|
4
|
+
class AwsSdkV3Api {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'awsSdkV3Api';
|
|
7
|
+
this.displayName = 'AWS SDK V3 API';
|
|
8
|
+
this.documentationUrl = 'https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/';
|
|
9
|
+
this.icon = { light: 'file:aws.svg', dark: 'file:aws.dark.svg' };
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Access Key ID',
|
|
13
|
+
name: 'accessKeyId',
|
|
14
|
+
type: 'string',
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'The AWS Access Key ID',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'Secret Access Key',
|
|
21
|
+
name: 'secretAccessKey',
|
|
22
|
+
type: 'string',
|
|
23
|
+
typeOptions: {
|
|
24
|
+
password: true,
|
|
25
|
+
},
|
|
26
|
+
default: '',
|
|
27
|
+
required: true,
|
|
28
|
+
description: 'The AWS Secret Access Key',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
displayName: 'Region',
|
|
32
|
+
name: 'region',
|
|
33
|
+
type: 'options',
|
|
34
|
+
options: [
|
|
35
|
+
{ name: 'Africa (Cape Town) - af-south-1', value: 'af-south-1' },
|
|
36
|
+
{ name: 'Asia Pacific (Hong Kong) - ap-east-1', value: 'ap-east-1' },
|
|
37
|
+
{ name: 'Asia Pacific (Mumbai) - ap-south-1', value: 'ap-south-1' },
|
|
38
|
+
{ name: 'Asia Pacific (Hyderabad) - ap-south-2', value: 'ap-south-2' },
|
|
39
|
+
{ name: 'Asia Pacific (Osaka) - ap-northeast-3', value: 'ap-northeast-3' },
|
|
40
|
+
{ name: 'Asia Pacific (Seoul) - ap-northeast-2', value: 'ap-northeast-2' },
|
|
41
|
+
{ name: 'Asia Pacific (Singapore) - ap-southeast-1', value: 'ap-southeast-1' },
|
|
42
|
+
{ name: 'Asia Pacific (Sydney) - ap-southeast-2', value: 'ap-southeast-2' },
|
|
43
|
+
{ name: 'Asia Pacific (Jakarta) - ap-southeast-3', value: 'ap-southeast-3' },
|
|
44
|
+
{ name: 'Asia Pacific (Melbourne) - ap-southeast-4', value: 'ap-southeast-4' },
|
|
45
|
+
{ name: 'Asia Pacific (Tokyo) - ap-northeast-1', value: 'ap-northeast-1' },
|
|
46
|
+
{ name: 'Canada (Central) - ca-central-1', value: 'ca-central-1' },
|
|
47
|
+
{ name: 'Canada West (Calgary) - ca-west-1', value: 'ca-west-1' },
|
|
48
|
+
{ name: 'Europe (Frankfurt) - eu-central-1', value: 'eu-central-1' },
|
|
49
|
+
{ name: 'Europe (Zurich) - eu-central-2', value: 'eu-central-2' },
|
|
50
|
+
{ name: 'Europe (Ireland) - eu-west-1', value: 'eu-west-1' },
|
|
51
|
+
{ name: 'Europe (London) - eu-west-2', value: 'eu-west-2' },
|
|
52
|
+
{ name: 'Europe (Paris) - eu-west-3', value: 'eu-west-3' },
|
|
53
|
+
{ name: 'Europe (Milan) - eu-south-1', value: 'eu-south-1' },
|
|
54
|
+
{ name: 'Europe (Spain) - eu-south-2', value: 'eu-south-2' },
|
|
55
|
+
{ name: 'Europe (Stockholm) - eu-north-1', value: 'eu-north-1' },
|
|
56
|
+
{ name: 'Israel (Tel Aviv) - il-central-1', value: 'il-central-1' },
|
|
57
|
+
{ name: 'Middle East (Bahrain) - me-south-1', value: 'me-south-1' },
|
|
58
|
+
{ name: 'Middle East (UAE) - me-central-1', value: 'me-central-1' },
|
|
59
|
+
{ name: 'South America (São Paulo) - sa-east-1', value: 'sa-east-1' },
|
|
60
|
+
{ name: 'US East (N. Virginia) - us-east-1', value: 'us-east-1' },
|
|
61
|
+
{ name: 'US East (Ohio) - us-east-2', value: 'us-east-2' },
|
|
62
|
+
{ name: 'US West (N. California) - us-west-1', value: 'us-west-1' },
|
|
63
|
+
{ name: 'US West (Oregon) - us-west-2', value: 'us-west-2' },
|
|
64
|
+
{ name: 'AWS GovCloud (US-East) - us-gov-east-1', value: 'us-gov-east-1' },
|
|
65
|
+
{ name: 'AWS GovCloud (US-West) - us-gov-west-1', value: 'us-gov-west-1' },
|
|
66
|
+
],
|
|
67
|
+
default: 'us-east-1',
|
|
68
|
+
required: true,
|
|
69
|
+
description: 'The AWS region',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
displayName: 'Session Token',
|
|
73
|
+
name: 'sessionToken',
|
|
74
|
+
type: 'string',
|
|
75
|
+
typeOptions: {
|
|
76
|
+
password: true,
|
|
77
|
+
},
|
|
78
|
+
default: '',
|
|
79
|
+
description: 'Optional session token for temporary credentials (STS)',
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.AwsSdkV3Api = AwsSdkV3Api;
|
|
85
|
+
//# sourceMappingURL=AwsSdkV3Api.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsSdkV3Api.credentials.js","sourceRoot":"","sources":["../../credentials/AwsSdkV3Api.credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" width="80" height="80">
|
|
2
|
+
<circle cx="40" cy="40" r="40" fill="#1A1A2E"/>
|
|
3
|
+
<!-- Left curly brace { -->
|
|
4
|
+
<path fill="#FF9900" d="M32 18c-4 0-6 2-6 6v8c0 3-2 4-4 4c2 0 4 1 4 4v8c0 4 2 6 6 6h2v-3h-1c-2 0-3-1-3-3v-9c0-2-1-3-3-4c2-1 3-2 3-4v-9c0-2 1-3 3-3h1v-3h-2z"/>
|
|
5
|
+
<!-- Right curly brace } -->
|
|
6
|
+
<path fill="#FF9900" d="M48 18c4 0 6 2 6 6v8c0 3 2 4 4 4c-2 0-4 1-4 4v8c0 4-2 6-6 6h-2v-3h1c2 0 3-1 3-3v-9c0-2 1-3 3-4c-2-1-3-2-3-4v-9c0-2-1-3-3-3h-1v-3h2z"/>
|
|
7
|
+
<!-- Amazon smile -->
|
|
8
|
+
<path fill="none" stroke="#FF9900" stroke-width="5" stroke-linecap="round" d="M18 60 Q40 70 60 60"/>
|
|
9
|
+
<path fill="#FF9900" d="M57 55l8 5l-6 6z"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" width="80" height="80">
|
|
2
|
+
<circle cx="40" cy="40" r="40" fill="#252F3E"/>
|
|
3
|
+
<!-- Left curly brace { -->
|
|
4
|
+
<path fill="#FF9900" d="M32 18c-4 0-6 2-6 6v8c0 3-2 4-4 4c2 0 4 1 4 4v8c0 4 2 6 6 6h2v-3h-1c-2 0-3-1-3-3v-9c0-2-1-3-3-4c2-1 3-2 3-4v-9c0-2 1-3 3-3h1v-3h-2z"/>
|
|
5
|
+
<!-- Right curly brace } -->
|
|
6
|
+
<path fill="#FF9900" d="M48 18c4 0 6 2 6 6v8c0 3 2 4 4 4c-2 0-4 1-4 4v8c0 4-2 6-6 6h-2v-3h1c2 0 3-1 3-3v-9c0-2 1-3 3-4c-2-1-3-2-3-4v-9c0-2-1-3-3-3h-1v-3h2z"/>
|
|
7
|
+
<!-- Amazon smile -->
|
|
8
|
+
<path fill="none" stroke="#FF9900" stroke-width="5" stroke-linecap="round" d="M18 60 Q40 70 60 60"/>
|
|
9
|
+
<path fill="#FF9900" d="M57 55l8 5l-6 6z"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ICredentialTestFunctions, ICredentialsDecrypted, IExecuteFunctions, INodeCredentialTestResult, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class AwsCode implements INodeType {
|
|
3
|
+
methods: {
|
|
4
|
+
credentialTest: {
|
|
5
|
+
awsCodeCredentialTest(this: ICredentialTestFunctions, credential: ICredentialsDecrypted): Promise<INodeCredentialTestResult>;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
description: INodeTypeDescription;
|
|
9
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AwsCode = void 0;
|
|
37
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
38
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
39
|
+
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
40
|
+
const client_ssm_1 = require("@aws-sdk/client-ssm");
|
|
41
|
+
const S3Commands = __importStar(require("@aws-sdk/client-s3"));
|
|
42
|
+
const BedrockCommands = __importStar(require("@aws-sdk/client-bedrock-runtime"));
|
|
43
|
+
const SSMCommands = __importStar(require("@aws-sdk/client-ssm"));
|
|
44
|
+
async function executeUserCode(code, context) {
|
|
45
|
+
const contextKeys = Object.keys(context);
|
|
46
|
+
const contextValues = Object.values(context);
|
|
47
|
+
const asyncFunction = new Function(...contextKeys, `return (async () => {
|
|
48
|
+
${code}
|
|
49
|
+
})();`);
|
|
50
|
+
return asyncFunction(...contextValues);
|
|
51
|
+
}
|
|
52
|
+
function normalizeOutput(result) {
|
|
53
|
+
if (result === undefined || result === null) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
if (Array.isArray(result)) {
|
|
57
|
+
return result.map((item) => {
|
|
58
|
+
if (typeof item === 'object' && item !== null && 'json' in item) {
|
|
59
|
+
return item;
|
|
60
|
+
}
|
|
61
|
+
return { json: item };
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (typeof result === 'object' && result !== null && 'json' in result) {
|
|
65
|
+
return [result];
|
|
66
|
+
}
|
|
67
|
+
if (typeof result === 'object' && result !== null) {
|
|
68
|
+
return [{ json: result }];
|
|
69
|
+
}
|
|
70
|
+
return [{ json: { value: result } }];
|
|
71
|
+
}
|
|
72
|
+
class AwsCode {
|
|
73
|
+
constructor() {
|
|
74
|
+
this.methods = {
|
|
75
|
+
credentialTest: {
|
|
76
|
+
async awsCodeCredentialTest(credential) {
|
|
77
|
+
const credentials = credential.data;
|
|
78
|
+
const awsConfig = {
|
|
79
|
+
region: credentials.region,
|
|
80
|
+
credentials: {
|
|
81
|
+
accessKeyId: credentials.accessKeyId,
|
|
82
|
+
secretAccessKey: credentials.secretAccessKey,
|
|
83
|
+
sessionToken: credentials.sessionToken,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
const s3Client = new client_s3_1.S3Client(awsConfig);
|
|
88
|
+
await s3Client.send(new S3Commands.ListBucketsCommand({}));
|
|
89
|
+
s3Client.destroy();
|
|
90
|
+
return {
|
|
91
|
+
status: 'OK',
|
|
92
|
+
message: 'Connection successful!',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return {
|
|
97
|
+
status: 'Error',
|
|
98
|
+
message: `Connection failed: ${error.message}`,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
this.description = {
|
|
105
|
+
displayName: 'AWS Code',
|
|
106
|
+
name: 'awsCode',
|
|
107
|
+
icon: { light: 'file:aws.svg', dark: 'file:aws.dark.svg' },
|
|
108
|
+
group: ['transform'],
|
|
109
|
+
version: 1,
|
|
110
|
+
description: 'Execute custom JavaScript code with AWS SDK v3 clients (S3, Bedrock, SSM)',
|
|
111
|
+
defaults: {
|
|
112
|
+
name: 'AWS Code',
|
|
113
|
+
},
|
|
114
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
115
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
116
|
+
usableAsTool: true,
|
|
117
|
+
credentials: [
|
|
118
|
+
{
|
|
119
|
+
name: 'awsSdkV3Api',
|
|
120
|
+
required: true,
|
|
121
|
+
testedBy: 'awsCodeCredentialTest',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
properties: [
|
|
125
|
+
{
|
|
126
|
+
displayName: 'Available Variables',
|
|
127
|
+
name: 'notice',
|
|
128
|
+
type: 'notice',
|
|
129
|
+
default: '',
|
|
130
|
+
description: '<strong>AWS Clients:</strong> $s3, $bedrock, $ssm<strong>Input Data:</strong> $items, $item, $itemIndex<strong>S3:</strong> ListBucketsCommand, GetObjectCommand, PutObjectCommand, DeleteObjectCommand, ListObjectsV2Command, ...<strong>Bedrock:</strong> InvokeModelCommand, ConverseCommand, ConverseStreamCommand, ...<strong>SSM:</strong> GetParameterCommand, PutParameterCommand, GetParametersByPathCommand, ...<em>Version: 0.1.1</em>',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
displayName: 'Mode',
|
|
134
|
+
name: 'mode',
|
|
135
|
+
type: 'options',
|
|
136
|
+
noDataExpression: true,
|
|
137
|
+
options: [
|
|
138
|
+
{
|
|
139
|
+
name: 'Run Once for All Items',
|
|
140
|
+
value: 'runOnceForAllItems',
|
|
141
|
+
description: 'Run the code once with access to all input items',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: 'Run Once for Each Item',
|
|
145
|
+
value: 'runOnceForEachItem',
|
|
146
|
+
description: 'Run the code once for each input item',
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
default: 'runOnceForAllItems',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
displayName: 'JavaScript Code',
|
|
153
|
+
name: 'code',
|
|
154
|
+
type: 'string',
|
|
155
|
+
typeOptions: {
|
|
156
|
+
editor: 'jsEditor',
|
|
157
|
+
rows: 20,
|
|
158
|
+
},
|
|
159
|
+
default: `// Available AWS clients (pre-configured with your credentials):
|
|
160
|
+
// - $s3: S3Client
|
|
161
|
+
// - $bedrock: BedrockRuntimeClient
|
|
162
|
+
// - $ssm: SSMClient
|
|
163
|
+
//
|
|
164
|
+
// Available AWS SDK commands:
|
|
165
|
+
// - S3: ListBucketsCommand, GetObjectCommand, PutObjectCommand, etc.
|
|
166
|
+
// - Bedrock: InvokeModelCommand, ConverseCommand, etc.
|
|
167
|
+
// - SSM: GetParameterCommand, PutParameterCommand, etc.
|
|
168
|
+
//
|
|
169
|
+
// Input data:
|
|
170
|
+
// - $items: All input items (in "Run Once for All Items" mode)
|
|
171
|
+
// - $item: Current item (in "Run Once for Each Item" mode)
|
|
172
|
+
// - $itemIndex: Current item index (in "Run Once for Each Item" mode)
|
|
173
|
+
//
|
|
174
|
+
// Example - List S3 buckets:
|
|
175
|
+
// const response = await $s3.send(new ListBucketsCommand({}));
|
|
176
|
+
// return response.Buckets.map(b => ({ json: { name: b.Name } }));
|
|
177
|
+
|
|
178
|
+
return $items;
|
|
179
|
+
`,
|
|
180
|
+
description: 'JavaScript code to execute with access to AWS SDK v3 clients',
|
|
181
|
+
noDataExpression: true,
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
async execute() {
|
|
187
|
+
const items = this.getInputData();
|
|
188
|
+
const mode = this.getNodeParameter('mode', 0);
|
|
189
|
+
const code = this.getNodeParameter('code', 0);
|
|
190
|
+
const credentials = (await this.getCredentials('awsSdkV3Api'));
|
|
191
|
+
const awsConfig = {
|
|
192
|
+
region: credentials.region,
|
|
193
|
+
credentials: {
|
|
194
|
+
accessKeyId: credentials.accessKeyId,
|
|
195
|
+
secretAccessKey: credentials.secretAccessKey,
|
|
196
|
+
sessionToken: credentials.sessionToken,
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const s3Client = new client_s3_1.S3Client(awsConfig);
|
|
200
|
+
const bedrockClient = new client_bedrock_runtime_1.BedrockRuntimeClient(awsConfig);
|
|
201
|
+
const ssmClient = new client_ssm_1.SSMClient(awsConfig);
|
|
202
|
+
const context = {
|
|
203
|
+
$s3: s3Client,
|
|
204
|
+
$bedrock: bedrockClient,
|
|
205
|
+
$ssm: ssmClient,
|
|
206
|
+
ListBucketsCommand: S3Commands.ListBucketsCommand,
|
|
207
|
+
GetObjectCommand: S3Commands.GetObjectCommand,
|
|
208
|
+
PutObjectCommand: S3Commands.PutObjectCommand,
|
|
209
|
+
DeleteObjectCommand: S3Commands.DeleteObjectCommand,
|
|
210
|
+
CopyObjectCommand: S3Commands.CopyObjectCommand,
|
|
211
|
+
HeadObjectCommand: S3Commands.HeadObjectCommand,
|
|
212
|
+
ListObjectsV2Command: S3Commands.ListObjectsV2Command,
|
|
213
|
+
CreateBucketCommand: S3Commands.CreateBucketCommand,
|
|
214
|
+
DeleteBucketCommand: S3Commands.DeleteBucketCommand,
|
|
215
|
+
InvokeModelCommand: BedrockCommands.InvokeModelCommand,
|
|
216
|
+
InvokeModelWithResponseStreamCommand: BedrockCommands.InvokeModelWithResponseStreamCommand,
|
|
217
|
+
ConverseCommand: BedrockCommands.ConverseCommand,
|
|
218
|
+
ConverseStreamCommand: BedrockCommands.ConverseStreamCommand,
|
|
219
|
+
GetParameterCommand: SSMCommands.GetParameterCommand,
|
|
220
|
+
GetParametersCommand: SSMCommands.GetParametersCommand,
|
|
221
|
+
GetParametersByPathCommand: SSMCommands.GetParametersByPathCommand,
|
|
222
|
+
PutParameterCommand: SSMCommands.PutParameterCommand,
|
|
223
|
+
DeleteParameterCommand: SSMCommands.DeleteParameterCommand,
|
|
224
|
+
DeleteParametersCommand: SSMCommands.DeleteParametersCommand,
|
|
225
|
+
};
|
|
226
|
+
let returnData = [];
|
|
227
|
+
try {
|
|
228
|
+
if (mode === 'runOnceForAllItems') {
|
|
229
|
+
const result = await executeUserCode(code, {
|
|
230
|
+
...context,
|
|
231
|
+
$items: items,
|
|
232
|
+
$item: items[0],
|
|
233
|
+
$itemIndex: 0,
|
|
234
|
+
});
|
|
235
|
+
returnData = normalizeOutput(result);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
239
|
+
try {
|
|
240
|
+
const result = await executeUserCode(code, {
|
|
241
|
+
...context,
|
|
242
|
+
$items: items,
|
|
243
|
+
$item: items[itemIndex],
|
|
244
|
+
$itemIndex: itemIndex,
|
|
245
|
+
});
|
|
246
|
+
const normalizedResult = normalizeOutput(result);
|
|
247
|
+
returnData.push(...normalizedResult);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
if (this.continueOnFail()) {
|
|
251
|
+
returnData.push({
|
|
252
|
+
json: { error: error.message },
|
|
253
|
+
pairedItem: { item: itemIndex },
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
|
|
258
|
+
itemIndex,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
if (this.continueOnFail()) {
|
|
267
|
+
returnData.push({
|
|
268
|
+
json: { error: error.message },
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
s3Client.destroy();
|
|
277
|
+
bedrockClient.destroy();
|
|
278
|
+
ssmClient.destroy();
|
|
279
|
+
}
|
|
280
|
+
return [returnData];
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
exports.AwsCode = AwsCode;
|
|
284
|
+
//# sourceMappingURL=AwsCode.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsCode.node.js","sourceRoot":"","sources":["../../../nodes/AwsCode/AwsCode.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-aws-sdk-v3.awsCode",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Development", "Developer Tools"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://docs.n8n.io/integrations/builtin/credentials/aws/"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"primaryDocumentation": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" width="80" height="80">
|
|
2
|
+
<circle cx="40" cy="40" r="40" fill="#1A1A2E"/>
|
|
3
|
+
<!-- Left curly brace { -->
|
|
4
|
+
<path fill="#FF9900" d="M32 18c-4 0-6 2-6 6v8c0 3-2 4-4 4c2 0 4 1 4 4v8c0 4 2 6 6 6h2v-3h-1c-2 0-3-1-3-3v-9c0-2-1-3-3-4c2-1 3-2 3-4v-9c0-2 1-3 3-3h1v-3h2z"/>
|
|
5
|
+
<!-- Right curly brace } -->
|
|
6
|
+
<path fill="#FF9900" d="M48 18c4 0 6 2 6 6v8c0 3 2 4 4 4c-2 0-4 1-4 4v8c0 4-2 6-6 6h-2v-3h1c2 0 3-1 3-3v-9c0-2 1-3 3-4c-2-1-3-2-3-4v-9c0-2-1-3-3-3h-1v-3h2z"/>
|
|
7
|
+
<!-- Amazon smile -->
|
|
8
|
+
<path fill="none" stroke="#FF9900" stroke-width="5" stroke-linecap="round" d="M18 60 Q40 70 60 60"/>
|
|
9
|
+
<path fill="#FF9900" d="M57 55l8 5l-6 6z"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" width="80" height="80">
|
|
2
|
+
<circle cx="40" cy="40" r="40" fill="#252F3E"/>
|
|
3
|
+
<!-- Left curly brace { -->
|
|
4
|
+
<path fill="#FF9900" d="M32 18c-4 0-6 2-6 6v8c0 3-2 4-4 4c2 0 4 1 4 4v8c0 4 2 6 6 6h2v-3h-1c-2 0-3-1-3-3v-9c0-2-1-3-3-4c2-1 3-2 3-4v-9c0-2 1-3 3-3h1v-3h-2z"/>
|
|
5
|
+
<!-- Right curly brace } -->
|
|
6
|
+
<path fill="#FF9900" d="M48 18c4 0 6 2 6 6v8c0 3 2 4 4 4c-2 0-4 1-4 4v8c0 4-2 6-6 6h-2v-3h1c2 0 3-1 3-3v-9c0-2 1-3 3-4c-2-1-3-2-3-4v-9c0-2-1-3-3-3h-1v-3h2z"/>
|
|
7
|
+
<!-- Amazon smile -->
|
|
8
|
+
<path fill="none" stroke="#FF9900" stroke-width="5" stroke-linecap="round" d="M18 60 Q40 70 60 60"/>
|
|
9
|
+
<path fill="#FF9900" d="M57 55l8 5l-6 6z"/>
|
|
10
|
+
</svg>
|