n8n-nodes-base 1.116.0 → 1.118.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 (189) hide show
  1. package/dist/credentials/Aws.credentials.d.ts +2 -26
  2. package/dist/credentials/Aws.credentials.d.ts.map +1 -1
  3. package/dist/credentials/Aws.credentials.js +11 -461
  4. package/dist/credentials/Aws.credentials.js.map +1 -1
  5. package/dist/credentials/AwsAssumeRole.credentials.d.ts +14 -0
  6. package/dist/credentials/AwsAssumeRole.credentials.d.ts.map +1 -0
  7. package/dist/credentials/AwsAssumeRole.credentials.js +134 -0
  8. package/dist/credentials/AwsAssumeRole.credentials.js.map +1 -0
  9. package/dist/credentials/BitbucketAccessTokenApi.credentials.d.ts +10 -0
  10. package/dist/credentials/BitbucketAccessTokenApi.credentials.d.ts.map +1 -0
  11. package/dist/credentials/BitbucketAccessTokenApi.credentials.js +39 -0
  12. package/dist/credentials/BitbucketAccessTokenApi.credentials.js.map +1 -0
  13. package/dist/credentials/ConvertKitApi.credentials.d.ts +3 -1
  14. package/dist/credentials/ConvertKitApi.credentials.d.ts.map +1 -1
  15. package/dist/credentials/ConvertKitApi.credentials.js +26 -0
  16. package/dist/credentials/ConvertKitApi.credentials.js.map +1 -1
  17. package/dist/credentials/FormIoApi.credentials.d.ts +6 -1
  18. package/dist/credentials/FormIoApi.credentials.d.ts.map +1 -1
  19. package/dist/credentials/FormIoApi.credentials.js +45 -0
  20. package/dist/credentials/FormIoApi.credentials.js.map +1 -1
  21. package/dist/credentials/OAuth2Api.credentials.d.ts.map +1 -1
  22. package/dist/credentials/OAuth2Api.credentials.js +52 -0
  23. package/dist/credentials/OAuth2Api.credentials.js.map +1 -1
  24. package/dist/credentials/SendGridApi.credentials.js +1 -1
  25. package/dist/credentials/SendGridApi.credentials.js.map +1 -1
  26. package/dist/credentials/common/aws/descriptions.d.ts +4 -0
  27. package/dist/credentials/common/aws/descriptions.d.ts.map +1 -0
  28. package/dist/credentials/common/aws/descriptions.js +114 -0
  29. package/dist/credentials/common/aws/descriptions.js.map +1 -0
  30. package/dist/credentials/common/aws/system-credentials-utils.d.ts +24 -0
  31. package/dist/credentials/common/aws/system-credentials-utils.d.ts.map +1 -0
  32. package/dist/credentials/common/aws/system-credentials-utils.js +213 -0
  33. package/dist/credentials/common/aws/system-credentials-utils.js.map +1 -0
  34. package/dist/credentials/common/aws/types.d.ts +44 -0
  35. package/dist/credentials/common/aws/types.d.ts.map +1 -0
  36. package/dist/credentials/common/aws/types.js +190 -0
  37. package/dist/credentials/common/aws/types.js.map +1 -0
  38. package/dist/credentials/common/aws/utils.d.ts +72 -0
  39. package/dist/credentials/common/aws/utils.d.ts.map +1 -0
  40. package/dist/credentials/common/aws/utils.js +332 -0
  41. package/dist/credentials/common/aws/utils.js.map +1 -0
  42. package/dist/credentials/common/http.d.ts +3 -0
  43. package/dist/credentials/common/http.d.ts.map +1 -0
  44. package/dist/credentials/common/http.js +9 -0
  45. package/dist/credentials/common/http.js.map +1 -0
  46. package/dist/known/credentials.json +25 -0
  47. package/dist/nodes/Airtop/actions/file/helpers.d.ts +1 -1
  48. package/dist/nodes/Airtop/actions/file/helpers.d.ts.map +1 -1
  49. package/dist/nodes/Airtop/actions/file/helpers.js +18 -17
  50. package/dist/nodes/Airtop/actions/file/helpers.js.map +1 -1
  51. package/dist/nodes/Airtop/actions/session/create.operation.d.ts.map +1 -1
  52. package/dist/nodes/Airtop/actions/session/create.operation.js +11 -0
  53. package/dist/nodes/Airtop/actions/session/create.operation.js.map +1 -1
  54. package/dist/nodes/Airtop/transport/index.d.ts +1 -1
  55. package/dist/nodes/Airtop/transport/index.d.ts.map +1 -1
  56. package/dist/nodes/Aws/AwsLambda.node.d.ts.map +1 -1
  57. package/dist/nodes/Aws/AwsLambda.node.js +3 -6
  58. package/dist/nodes/Aws/AwsLambda.node.js.map +1 -1
  59. package/dist/nodes/Aws/AwsSns.node.d.ts.map +1 -1
  60. package/dist/nodes/Aws/AwsSns.node.js +3 -6
  61. package/dist/nodes/Aws/AwsSns.node.js.map +1 -1
  62. package/dist/nodes/Aws/AwsSnsTrigger.node.d.ts.map +1 -1
  63. package/dist/nodes/Aws/AwsSnsTrigger.node.js +3 -6
  64. package/dist/nodes/Aws/AwsSnsTrigger.node.js.map +1 -1
  65. package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.d.ts.map +1 -1
  66. package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js +3 -6
  67. package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js.map +1 -1
  68. package/dist/nodes/Aws/CertificateManager/GenericFunctions.d.ts.map +1 -1
  69. package/dist/nodes/Aws/CertificateManager/GenericFunctions.js +3 -2
  70. package/dist/nodes/Aws/CertificateManager/GenericFunctions.js.map +1 -1
  71. package/dist/nodes/Aws/Cognito/transport/index.d.ts.map +1 -1
  72. package/dist/nodes/Aws/Cognito/transport/index.js.map +1 -1
  73. package/dist/nodes/Aws/Comprehend/AwsComprehend.node.d.ts.map +1 -1
  74. package/dist/nodes/Aws/Comprehend/AwsComprehend.node.js +3 -6
  75. package/dist/nodes/Aws/Comprehend/AwsComprehend.node.js.map +1 -1
  76. package/dist/nodes/Aws/Comprehend/GenericFunctions.d.ts.map +1 -1
  77. package/dist/nodes/Aws/Comprehend/GenericFunctions.js +3 -2
  78. package/dist/nodes/Aws/Comprehend/GenericFunctions.js.map +1 -1
  79. package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.d.ts.map +1 -1
  80. package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js +3 -6
  81. package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js.map +1 -1
  82. package/dist/nodes/Aws/DynamoDB/GenericFunctions.d.ts.map +1 -1
  83. package/dist/nodes/Aws/DynamoDB/GenericFunctions.js +3 -2
  84. package/dist/nodes/Aws/DynamoDB/GenericFunctions.js.map +1 -1
  85. package/dist/nodes/Aws/ELB/AwsElb.node.d.ts.map +1 -1
  86. package/dist/nodes/Aws/ELB/AwsElb.node.js +3 -6
  87. package/dist/nodes/Aws/ELB/AwsElb.node.js.map +1 -1
  88. package/dist/nodes/Aws/ELB/GenericFunctions.d.ts.map +1 -1
  89. package/dist/nodes/Aws/ELB/GenericFunctions.js +3 -2
  90. package/dist/nodes/Aws/ELB/GenericFunctions.js.map +1 -1
  91. package/dist/nodes/Aws/GenericFunctions.d.ts +5 -0
  92. package/dist/nodes/Aws/GenericFunctions.d.ts.map +1 -1
  93. package/dist/nodes/Aws/GenericFunctions.js +17 -2
  94. package/dist/nodes/Aws/GenericFunctions.js.map +1 -1
  95. package/dist/nodes/Aws/Rekognition/AwsRekognition.node.d.ts.map +1 -1
  96. package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js +3 -6
  97. package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js.map +1 -1
  98. package/dist/nodes/Aws/Rekognition/GenericFunctions.d.ts.map +1 -1
  99. package/dist/nodes/Aws/Rekognition/GenericFunctions.js +3 -2
  100. package/dist/nodes/Aws/Rekognition/GenericFunctions.js.map +1 -1
  101. package/dist/nodes/Aws/S3/V2/AwsS3V2.node.d.ts.map +1 -1
  102. package/dist/nodes/Aws/S3/V2/AwsS3V2.node.js +5 -7
  103. package/dist/nodes/Aws/S3/V2/AwsS3V2.node.js.map +1 -1
  104. package/dist/nodes/Aws/S3/V2/GenericFunctions.d.ts.map +1 -1
  105. package/dist/nodes/Aws/S3/V2/GenericFunctions.js +3 -1
  106. package/dist/nodes/Aws/S3/V2/GenericFunctions.js.map +1 -1
  107. package/dist/nodes/Aws/SES/AwsSes.node.d.ts.map +1 -1
  108. package/dist/nodes/Aws/SES/AwsSes.node.js +3 -6
  109. package/dist/nodes/Aws/SES/AwsSes.node.js.map +1 -1
  110. package/dist/nodes/Aws/SES/GenericFunctions.d.ts.map +1 -1
  111. package/dist/nodes/Aws/SES/GenericFunctions.js +3 -2
  112. package/dist/nodes/Aws/SES/GenericFunctions.js.map +1 -1
  113. package/dist/nodes/Aws/SQS/AwsSqs.node.d.ts.map +1 -1
  114. package/dist/nodes/Aws/SQS/AwsSqs.node.js +3 -6
  115. package/dist/nodes/Aws/SQS/AwsSqs.node.js.map +1 -1
  116. package/dist/nodes/Aws/Textract/AwsTextract.node.d.ts.map +1 -1
  117. package/dist/nodes/Aws/Textract/AwsTextract.node.js +3 -6
  118. package/dist/nodes/Aws/Textract/AwsTextract.node.js.map +1 -1
  119. package/dist/nodes/Aws/Textract/GenericFunctions.d.ts.map +1 -1
  120. package/dist/nodes/Aws/Textract/GenericFunctions.js +3 -2
  121. package/dist/nodes/Aws/Textract/GenericFunctions.js.map +1 -1
  122. package/dist/nodes/Aws/utils.d.ts +4 -0
  123. package/dist/nodes/Aws/utils.d.ts.map +1 -0
  124. package/dist/nodes/Aws/utils.js +40 -0
  125. package/dist/nodes/Aws/utils.js.map +1 -0
  126. package/dist/nodes/Bitbucket/BitbucketTrigger.node.d.ts.map +1 -1
  127. package/dist/nodes/Bitbucket/BitbucketTrigger.node.js +58 -1
  128. package/dist/nodes/Bitbucket/BitbucketTrigger.node.js.map +1 -1
  129. package/dist/nodes/Bitbucket/GenericFunctions.d.ts +1 -1
  130. package/dist/nodes/Bitbucket/GenericFunctions.d.ts.map +1 -1
  131. package/dist/nodes/Bitbucket/GenericFunctions.js +30 -17
  132. package/dist/nodes/Bitbucket/GenericFunctions.js.map +1 -1
  133. package/dist/nodes/Code/Code.node.d.ts.map +1 -1
  134. package/dist/nodes/Code/Code.node.js +12 -1
  135. package/dist/nodes/Code/Code.node.js.map +1 -1
  136. package/dist/nodes/Code/js.svg +4 -0
  137. package/dist/nodes/Code/python.svg +3 -0
  138. package/dist/nodes/ConvertKit/GenericFunctions.d.ts +2 -2
  139. package/dist/nodes/ConvertKit/GenericFunctions.d.ts.map +1 -1
  140. package/dist/nodes/ConvertKit/GenericFunctions.js +3 -11
  141. package/dist/nodes/ConvertKit/GenericFunctions.js.map +1 -1
  142. package/dist/nodes/DataTable/DataTable.node.d.ts.map +1 -1
  143. package/dist/nodes/DataTable/DataTable.node.js +0 -3
  144. package/dist/nodes/DataTable/DataTable.node.js.map +1 -1
  145. package/dist/nodes/EmailSend/v2/utils.d.ts +1 -1
  146. package/dist/nodes/EmailSend/v2/utils.d.ts.map +1 -1
  147. package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.d.ts.map +1 -1
  148. package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.js +5 -2
  149. package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.js.map +1 -1
  150. package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.d.ts +2 -1
  151. package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.d.ts.map +1 -1
  152. package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.js +11 -3
  153. package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.js.map +1 -1
  154. package/dist/nodes/FormIo/GenericFunctions.d.ts +1 -1
  155. package/dist/nodes/FormIo/GenericFunctions.d.ts.map +1 -1
  156. package/dist/nodes/FormIo/GenericFunctions.js +2 -32
  157. package/dist/nodes/FormIo/GenericFunctions.js.map +1 -1
  158. package/dist/nodes/Google/Calendar/EventDescription.d.ts.map +1 -1
  159. package/dist/nodes/Google/Calendar/EventDescription.js +1 -0
  160. package/dist/nodes/Google/Calendar/EventDescription.js.map +1 -1
  161. package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.d.ts.map +1 -1
  162. package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js +10 -0
  163. package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js.map +1 -1
  164. package/dist/nodes/Google/Gmail/GenericFunctions.d.ts.map +1 -1
  165. package/dist/nodes/Google/Gmail/GenericFunctions.js +0 -1
  166. package/dist/nodes/Google/Gmail/GenericFunctions.js.map +1 -1
  167. package/dist/nodes/Google/Gmail/v1/GmailV1.node.d.ts.map +1 -1
  168. package/dist/nodes/Google/Gmail/v1/GmailV1.node.js +1 -0
  169. package/dist/nodes/Google/Gmail/v1/GmailV1.node.js.map +1 -1
  170. package/dist/nodes/Redis/Redis.node.d.ts.map +1 -1
  171. package/dist/nodes/Redis/Redis.node.js +42 -1
  172. package/dist/nodes/Redis/Redis.node.js.map +1 -1
  173. package/dist/nodes/Slack/SlackTrigger.node.d.ts.map +1 -1
  174. package/dist/nodes/Slack/SlackTrigger.node.js +3 -0
  175. package/dist/nodes/Slack/SlackTrigger.node.js.map +1 -1
  176. package/dist/nodes/SpreadsheetFile/description.d.ts.map +1 -1
  177. package/dist/nodes/SpreadsheetFile/description.js +33 -0
  178. package/dist/nodes/SpreadsheetFile/description.js.map +1 -1
  179. package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.d.ts +4 -1
  180. package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.d.ts.map +1 -1
  181. package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.js +29 -4
  182. package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.js.map +1 -1
  183. package/dist/nodes/Xero/Xero.node.d.ts.map +1 -1
  184. package/dist/nodes/Xero/Xero.node.js +3 -5
  185. package/dist/nodes/Xero/Xero.node.js.map +1 -1
  186. package/dist/typecheck.tsbuildinfo +1 -1
  187. package/dist/types/credentials.json +7 -5
  188. package/dist/types/nodes.json +23 -23
  189. package/package.json +9 -7
@@ -0,0 +1,24 @@
1
+ type Resolvers = 'environment' | 'podIdentity' | 'containerMetadata' | 'instanceMetadata';
2
+ type RetrunData = {
3
+ accessKeyId: string;
4
+ secretAccessKey: string;
5
+ sessionToken?: string;
6
+ };
7
+ export declare const envGetter: (key: string) => string | undefined;
8
+ export declare const credentialsResolver: Record<Resolvers, () => Promise<RetrunData | null>>;
9
+ /**
10
+ * Retrieves AWS credentials from various system sources following the AWS credential chain.
11
+ * Attempts to get credentials in the following order:
12
+ * 1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)
13
+ * 2. EKS Pod Identity (AWS_CONTAINER_CREDENTIALS_FULL_URI)
14
+ * 3. ECS/Fargate container metadata (AWS_CONTAINER_CREDENTIALS_RELATIVE_URI)
15
+ * 4. EC2 instance metadata service
16
+ */
17
+ export declare function getSystemCredentials(): Promise<{
18
+ source: Resolvers;
19
+ accessKeyId: string;
20
+ secretAccessKey: string;
21
+ sessionToken?: string;
22
+ } | null>;
23
+ export {};
24
+ //# sourceMappingURL=system-credentials-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-credentials-utils.d.ts","sourceRoot":"","sources":["../../../../credentials/common/aws/system-credentials-utils.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAC1F,KAAK,UAAU,GAAG;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAA6B,CAAC;AAE/E,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAKnF,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,oBAAoB;;iBAtB5B,MAAM;qBACF,MAAM;mBACR,MAAM;UA4CrB"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.credentialsResolver = exports.envGetter = void 0;
4
+ exports.getSystemCredentials = getSystemCredentials;
5
+ const config_1 = require("@n8n/config");
6
+ const di_1 = require("@n8n/di");
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const envGetter = (key) => process.env[key];
9
+ exports.envGetter = envGetter;
10
+ exports.credentialsResolver = {
11
+ environment: getEnvironmentCredentials,
12
+ instanceMetadata: getInstanceMetadataCredentials,
13
+ containerMetadata: getContainerMetadataCredentials,
14
+ podIdentity: getPodIdentityCredentials,
15
+ };
16
+ /**
17
+ * Retrieves AWS credentials from various system sources following the AWS credential chain.
18
+ * Attempts to get credentials in the following order:
19
+ * 1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)
20
+ * 2. EKS Pod Identity (AWS_CONTAINER_CREDENTIALS_FULL_URI)
21
+ * 3. ECS/Fargate container metadata (AWS_CONTAINER_CREDENTIALS_RELATIVE_URI)
22
+ * 4. EC2 instance metadata service
23
+ */
24
+ async function getSystemCredentials() {
25
+ if (!di_1.Container.get(config_1.SecurityConfig).awsSystemCredentialsAccess) {
26
+ throw new n8n_workflow_1.ApplicationError('Access to AWS system credentials disabled, contact your administrator.');
27
+ }
28
+ const resolveOrder = [
29
+ 'environment',
30
+ 'podIdentity',
31
+ 'containerMetadata',
32
+ 'instanceMetadata',
33
+ ];
34
+ for (const resolver of resolveOrder) {
35
+ try {
36
+ const credentials = await exports.credentialsResolver[resolver]();
37
+ if (credentials)
38
+ return { ...credentials, source: resolver };
39
+ }
40
+ catch (error) {
41
+ // Ignore and continue to the next resolver
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ async function getEnvironmentCredentials() {
47
+ const accessKeyId = (0, exports.envGetter)('AWS_ACCESS_KEY_ID');
48
+ const secretAccessKey = (0, exports.envGetter)('AWS_SECRET_ACCESS_KEY');
49
+ const sessionToken = (0, exports.envGetter)('AWS_SESSION_TOKEN');
50
+ if (accessKeyId && secretAccessKey) {
51
+ return {
52
+ accessKeyId: accessKeyId.trim(),
53
+ secretAccessKey: secretAccessKey.trim(),
54
+ sessionToken: sessionToken?.trim(),
55
+ };
56
+ }
57
+ return null;
58
+ }
59
+ /**
60
+ * Retrieves AWS credentials from EC2 instance metadata service (IMDSv2-aware).
61
+ * This function is used when running on an EC2 instance with an attached IAM role.
62
+ * It first attempts to obtain an IMDSv2 session token and includes it in all metadata requests.
63
+ * Falls back to IMDSv1 if IMDSv2 is unavailable (older or less restricted environments).
64
+ *
65
+ * @returns Promise resolving to credentials object or null if not running on EC2 or no role attached
66
+ *
67
+ * @see {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html IAM Roles for Amazon EC2}
68
+ */
69
+ async function getInstanceMetadataCredentials() {
70
+ try {
71
+ const baseUrl = 'http://169.254.169.254/latest';
72
+ const headers = {
73
+ 'User-Agent': 'n8n-aws-credential',
74
+ };
75
+ // Try to obtain an IMDSv2 token
76
+ try {
77
+ const tokenResponse = await fetch(`${baseUrl}/api/token`, {
78
+ method: 'PUT',
79
+ headers: {
80
+ 'X-aws-ec2-metadata-token-ttl-seconds': '21600',
81
+ 'User-Agent': 'n8n-aws-credential',
82
+ },
83
+ signal: AbortSignal.timeout(2000),
84
+ });
85
+ if (tokenResponse.ok) {
86
+ const token = await tokenResponse.text();
87
+ headers['X-aws-ec2-metadata-token'] = token;
88
+ }
89
+ }
90
+ catch {
91
+ // IMDSv2 may be disabled; continue with IMDSv1
92
+ }
93
+ const roleResponse = await fetch(`${baseUrl}/meta-data/iam/security-credentials/`, {
94
+ method: 'GET',
95
+ headers,
96
+ signal: AbortSignal.timeout(2000),
97
+ });
98
+ if (!roleResponse.ok) {
99
+ return null;
100
+ }
101
+ const roleName = (await roleResponse.text()).trim();
102
+ if (!roleName) {
103
+ return null;
104
+ }
105
+ const credentialsResponse = await fetch(`${baseUrl}/meta-data/iam/security-credentials/${roleName}`, {
106
+ method: 'GET',
107
+ headers,
108
+ signal: AbortSignal.timeout(2000),
109
+ });
110
+ if (!credentialsResponse.ok) {
111
+ return null;
112
+ }
113
+ const credentialsData = await credentialsResponse.json();
114
+ if (!credentialsData?.AccessKeyId || !credentialsData?.SecretAccessKey) {
115
+ return null;
116
+ }
117
+ return {
118
+ accessKeyId: credentialsData.AccessKeyId,
119
+ secretAccessKey: credentialsData.SecretAccessKey,
120
+ sessionToken: credentialsData.Token,
121
+ };
122
+ }
123
+ catch (error) {
124
+ return null;
125
+ }
126
+ }
127
+ /**
128
+ * Retrieves AWS credentials from ECS/Fargate container metadata service.
129
+ * This function is used when running in an ECS task or Fargate container with a task role.
130
+ * It uses the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable to fetch credentials.
131
+ * When AWS_CONTAINER_AUTHORIZATION_TOKEN is available, it includes the Authorization header
132
+ * as required by AWS for container credential endpoints.
133
+ *
134
+ * @returns Promise resolving to credentials object or null if not running in ECS/Fargate or no task role
135
+ *
136
+ * @see {@link https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html IAM Roles for Tasks}
137
+ */
138
+ async function getContainerMetadataCredentials() {
139
+ try {
140
+ const relativeUri = (0, exports.envGetter)('AWS_CONTAINER_CREDENTIALS_RELATIVE_URI');
141
+ if (!relativeUri) {
142
+ return null;
143
+ }
144
+ const authToken = (0, exports.envGetter)('AWS_CONTAINER_AUTHORIZATION_TOKEN');
145
+ const headers = {
146
+ 'User-Agent': 'n8n-aws-credential',
147
+ };
148
+ if (authToken) {
149
+ headers.Authorization = `Bearer ${authToken}`;
150
+ }
151
+ const response = await fetch(`http://169.254.170.2${relativeUri}`, {
152
+ method: 'GET',
153
+ headers,
154
+ signal: AbortSignal.timeout(2000),
155
+ });
156
+ if (!response.ok) {
157
+ return null;
158
+ }
159
+ const credentialsData = await response.json();
160
+ return {
161
+ accessKeyId: credentialsData.AccessKeyId,
162
+ secretAccessKey: credentialsData.SecretAccessKey,
163
+ sessionToken: credentialsData.Token,
164
+ };
165
+ }
166
+ catch (error) {
167
+ return null;
168
+ }
169
+ }
170
+ /**
171
+ * Retrieves AWS credentials from EKS Pod Identity service.
172
+ * This function is used when running in an EKS pod with Pod Identity configured.
173
+ * It uses the AWS_CONTAINER_CREDENTIALS_FULL_URI environment variable to fetch credentials.
174
+ * When AWS_CONTAINER_AUTHORIZATION_TOKEN is available, it includes the Authorization header
175
+ * as required by AWS for Pod Identity credential endpoints.
176
+ *
177
+ * @returns Promise resolving to credentials object or null if not running with EKS Pod Identity
178
+ *
179
+ * @see {@link https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html EKS Pod Identities}
180
+ */
181
+ async function getPodIdentityCredentials() {
182
+ const fullUri = (0, exports.envGetter)('AWS_CONTAINER_CREDENTIALS_FULL_URI');
183
+ if (!fullUri) {
184
+ return null;
185
+ }
186
+ try {
187
+ const authToken = (0, exports.envGetter)('AWS_CONTAINER_AUTHORIZATION_TOKEN');
188
+ const headers = {
189
+ 'User-Agent': 'n8n-aws-credential',
190
+ };
191
+ if (authToken) {
192
+ headers.Authorization = `Bearer ${authToken}`;
193
+ }
194
+ const response = await fetch(fullUri, {
195
+ method: 'GET',
196
+ headers,
197
+ signal: AbortSignal.timeout(2000),
198
+ });
199
+ if (!response.ok) {
200
+ return null;
201
+ }
202
+ const credentialsData = await response.json();
203
+ return {
204
+ accessKeyId: credentialsData.AccessKeyId,
205
+ secretAccessKey: credentialsData.SecretAccessKey,
206
+ sessionToken: credentialsData.Token,
207
+ };
208
+ }
209
+ catch (error) {
210
+ return null;
211
+ }
212
+ }
213
+ //# sourceMappingURL=system-credentials-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-credentials-utils.js","sourceRoot":"","sources":["../../../../credentials/common/aws/system-credentials-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export declare const AWS_CHINA_DOMAIN = "amazonaws.com.cn";
2
+ export declare const AWS_GLOBAL_DOMAIN = "amazonaws.com";
3
+ type RegionData = {
4
+ name: string;
5
+ displayName: string;
6
+ location: string;
7
+ domain?: string;
8
+ };
9
+ export declare const regions: RegionData[];
10
+ export type AWSRegion = (typeof regions)[number]['name'];
11
+ export type AwsCredentialsTypeBase = {
12
+ region: AWSRegion;
13
+ customEndpoints: boolean;
14
+ rekognitionEndpoint?: string;
15
+ lambdaEndpoint?: string;
16
+ snsEndpoint?: string;
17
+ sesEndpoint?: string;
18
+ sqsEndpoint?: string;
19
+ s3Endpoint?: string;
20
+ ssmEndpoint?: string;
21
+ };
22
+ export type AwsIamCredentialsType = AwsCredentialsTypeBase & {
23
+ accessKeyId: string;
24
+ secretAccessKey: string;
25
+ temporaryCredentials: boolean;
26
+ sessionToken?: string;
27
+ };
28
+ export type AwsAssumeRoleCredentialsType = AwsCredentialsTypeBase & {
29
+ assumeRole?: boolean;
30
+ roleArn?: string;
31
+ externalId?: string;
32
+ roleSessionName?: string;
33
+ useSystemCredentialsForRole?: boolean;
34
+ stsAccessKeyId?: string;
35
+ stsSecretAccessKey?: string;
36
+ stsSessionToken?: string;
37
+ };
38
+ export type AwsSecurityHeaders = {
39
+ accessKeyId: string;
40
+ secretAccessKey: string;
41
+ sessionToken: string | undefined;
42
+ };
43
+ export {};
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../credentials/common/aws/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAAU,EAuLtB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,GAAG;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.regions = exports.AWS_GLOBAL_DOMAIN = exports.AWS_CHINA_DOMAIN = void 0;
4
+ exports.AWS_CHINA_DOMAIN = 'amazonaws.com.cn';
5
+ exports.AWS_GLOBAL_DOMAIN = 'amazonaws.com';
6
+ exports.regions = [
7
+ {
8
+ name: 'af-south-1',
9
+ displayName: 'Africa',
10
+ location: 'Cape Town',
11
+ },
12
+ {
13
+ name: 'ap-east-1',
14
+ displayName: 'Asia Pacific',
15
+ location: 'Hong Kong',
16
+ },
17
+ {
18
+ name: 'ap-south-1',
19
+ displayName: 'Asia Pacific',
20
+ location: 'Mumbai',
21
+ },
22
+ {
23
+ name: 'ap-south-2',
24
+ displayName: 'Asia Pacific',
25
+ location: 'Hyderabad',
26
+ },
27
+ {
28
+ name: 'ap-southeast-1',
29
+ displayName: 'Asia Pacific',
30
+ location: 'Singapore',
31
+ },
32
+ {
33
+ name: 'ap-southeast-2',
34
+ displayName: 'Asia Pacific',
35
+ location: 'Sydney',
36
+ },
37
+ {
38
+ name: 'ap-southeast-3',
39
+ displayName: 'Asia Pacific',
40
+ location: 'Jakarta',
41
+ },
42
+ {
43
+ name: 'ap-southeast-4',
44
+ displayName: 'Asia Pacific',
45
+ location: 'Melbourne',
46
+ },
47
+ {
48
+ name: 'ap-southeast-5',
49
+ displayName: 'Asia Pacific',
50
+ location: 'Malaysia',
51
+ },
52
+ {
53
+ name: 'ap-southeast-7',
54
+ displayName: 'Asia Pacific',
55
+ location: 'Thailand',
56
+ },
57
+ {
58
+ name: 'ap-northeast-1',
59
+ displayName: 'Asia Pacific',
60
+ location: 'Tokyo',
61
+ },
62
+ {
63
+ name: 'ap-northeast-2',
64
+ displayName: 'Asia Pacific',
65
+ location: 'Seoul',
66
+ },
67
+ {
68
+ name: 'ap-northeast-3',
69
+ displayName: 'Asia Pacific',
70
+ location: 'Osaka',
71
+ },
72
+ {
73
+ name: 'ca-central-1',
74
+ displayName: 'Canada',
75
+ location: 'Central',
76
+ },
77
+ {
78
+ name: 'ca-west-1',
79
+ displayName: 'Canada West',
80
+ location: 'Calgary',
81
+ },
82
+ {
83
+ name: 'cn-north-1',
84
+ displayName: 'China',
85
+ location: 'Beijing',
86
+ domain: exports.AWS_CHINA_DOMAIN,
87
+ },
88
+ {
89
+ name: 'cn-northwest-1',
90
+ displayName: 'China',
91
+ location: 'Ningxia',
92
+ domain: exports.AWS_CHINA_DOMAIN,
93
+ },
94
+ {
95
+ name: 'eu-central-1',
96
+ displayName: 'Europe',
97
+ location: 'Frankfurt',
98
+ },
99
+ {
100
+ name: 'eu-central-2',
101
+ displayName: 'Europe',
102
+ location: 'Zurich',
103
+ },
104
+ {
105
+ name: 'eu-north-1',
106
+ displayName: 'Europe',
107
+ location: 'Stockholm',
108
+ },
109
+ {
110
+ name: 'eu-south-1',
111
+ displayName: 'Europe',
112
+ location: 'Milan',
113
+ },
114
+ {
115
+ name: 'eu-south-2',
116
+ displayName: 'Europe',
117
+ location: 'Spain',
118
+ },
119
+ {
120
+ name: 'eu-west-1',
121
+ displayName: 'Europe',
122
+ location: 'Ireland',
123
+ },
124
+ {
125
+ name: 'eu-west-2',
126
+ displayName: 'Europe',
127
+ location: 'London',
128
+ },
129
+ {
130
+ name: 'eu-west-3',
131
+ displayName: 'Europe',
132
+ location: 'Paris',
133
+ },
134
+ {
135
+ name: 'il-central-1',
136
+ displayName: 'Israel',
137
+ location: 'Tel Aviv',
138
+ },
139
+ {
140
+ name: 'me-central-1',
141
+ displayName: 'Middle East',
142
+ location: 'UAE',
143
+ },
144
+ {
145
+ name: 'me-south-1',
146
+ displayName: 'Middle East',
147
+ location: 'Bahrain',
148
+ },
149
+ {
150
+ name: 'mx-central-1',
151
+ displayName: 'Mexico',
152
+ location: 'Central',
153
+ },
154
+ {
155
+ name: 'sa-east-1',
156
+ displayName: 'South America',
157
+ location: 'São Paulo',
158
+ },
159
+ {
160
+ name: 'us-east-1',
161
+ displayName: 'US East',
162
+ location: 'N. Virginia',
163
+ },
164
+ {
165
+ name: 'us-east-2',
166
+ displayName: 'US East',
167
+ location: 'Ohio',
168
+ },
169
+ {
170
+ name: 'us-gov-east-1',
171
+ displayName: 'US East',
172
+ location: 'GovCloud',
173
+ },
174
+ {
175
+ name: 'us-west-1',
176
+ displayName: 'US West',
177
+ location: 'N. California',
178
+ },
179
+ {
180
+ name: 'us-west-2',
181
+ displayName: 'US West',
182
+ location: 'Oregon',
183
+ },
184
+ {
185
+ name: 'us-gov-west-1',
186
+ displayName: 'US West',
187
+ location: 'GovCloud',
188
+ },
189
+ ];
190
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../credentials/common/aws/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type IHttpRequestMethods, type ICredentialTestRequest, type IHttpRequestOptions } from 'n8n-workflow';
2
+ import type { Request } from 'aws4';
3
+ import { type AwsCredentialsTypeBase, type AWSRegion, type AwsAssumeRoleCredentialsType, type AwsSecurityHeaders } from './types';
4
+ /**
5
+ * Gets the AWS domain for a specific region.
6
+ *
7
+ * @param region - The AWS region to get the domain for
8
+ * @returns The AWS domain for the region, or the global domain if region not found
9
+ */
10
+ export declare function getAwsDomain(region: AWSRegion): string;
11
+ /**
12
+ * Parses an AWS service URL to extract the service name and region.
13
+ * Some AWS services are global and don't have a region.
14
+ *
15
+ * @param url - The AWS service URL to parse
16
+ * @returns Object containing the service name and region (null for global services)
17
+ *
18
+ * @see {@link https://docs.aws.amazon.com/general/latest/gr/rande.html#global-endpoints AWS Global Endpoints}
19
+ */
20
+ export declare function parseAwsUrl(url: URL): {
21
+ region: AWSRegion | null;
22
+ service: string;
23
+ };
24
+ /**
25
+ * AWS credentials test configuration for validating AWS credentials.
26
+ * Uses the STS GetCallerIdentity action to verify that the provided credentials are valid.
27
+ * Automatically handles both standard AWS regions and China regions with appropriate endpoints.
28
+ */
29
+ export declare const awsCredentialsTest: ICredentialTestRequest;
30
+ /**
31
+ * Prepares AWS request options for signing by constructing the proper endpoint URL,
32
+ * handling query parameters, and setting up the request body for AWS4 signature.
33
+ *
34
+ * This function handles multiple scenarios:
35
+ * - Custom service endpoints from credentials
36
+ * - Default AWS service endpoints
37
+ * - URI-based requests (legacy IRequestOptions interface)
38
+ * - Form data conversion to URL-encoded format
39
+ * - Special handling for STS GetCallerIdentity requests
40
+ *
41
+ * @param requestOptions - The HTTP request options to modify
42
+ * @param credentials - AWS credentials containing potential custom endpoints
43
+ * @param path - The API path to append to the endpoint
44
+ * @param method - HTTP method for the request
45
+ * @param service - AWS service name (e.g., 's3', 'lambda', 'sts')
46
+ * @param region - AWS region for the request
47
+ * @returns Object containing signing options and the constructed endpoint URL
48
+ */
49
+ export declare function awsGetSignInOptionsAndUpdateRequest(requestOptions: IHttpRequestOptions, credentials: AwsCredentialsTypeBase, path: string, method: string | undefined, service: string, region: AWSRegion): {
50
+ signOpts: Request;
51
+ url: string;
52
+ };
53
+ /**
54
+ * Assumes an AWS IAM role using STS (Security Token Service) and returns temporary credentials.
55
+ * This function supports two modes for providing credentials for the STS call:
56
+ * 1. Using system credentials (environment variables, instance metadata, etc.)
57
+ * 2. Using manually provided STS credentials
58
+ *
59
+ * @param credentials - The assume role credentials configuration
60
+ * @param region - AWS region for the STS endpoint
61
+ * @returns Promise resolving to temporary credentials for the assumed role
62
+ * @throws {ApplicationError} When credentials are invalid or STS call fails
63
+ *
64
+ * @see {@link https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html STS AssumeRole API}
65
+ */
66
+ export declare function assumeRole(credentials: AwsAssumeRoleCredentialsType, region: AWSRegion): Promise<{
67
+ accessKeyId: string;
68
+ secretAccessKey: string;
69
+ sessionToken: string;
70
+ }>;
71
+ export declare function signOptions(requestOptions: IHttpRequestOptions, signOpts: Request, securityHeaders: AwsSecurityHeaders, url: string, method?: IHttpRequestMethods): IHttpRequestOptions;
72
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../credentials/common/aws/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAE3B,KAAK,mBAAmB,EAExB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAEN,KAAK,sBAAsB,EAE3B,KAAK,SAAS,EACd,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,MAAM,SAAS,CAAC;AAuBjB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAKnF;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBAQhC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mCAAmC,CAClD,cAAc,EAAE,mBAAmB,EACnC,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,GACf;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgHpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC/B,WAAW,EAAE,4BAA4B,EACzC,MAAM,EAAE,SAAS,GACf,OAAO,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC,CAwHD;AAED,wBAAgB,WAAW,CAC1B,cAAc,EAAE,mBAAmB,EACnC,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,kBAAkB,EACnC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,mBAAmB,uBAiB5B"}