n8n-nodes-base 1.92.0 → 1.94.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/dist/credentials/AirtopApi.credentials.js +2 -1
- package/dist/credentials/AirtopApi.credentials.js.map +1 -1
- package/dist/credentials/JinaAiApi.credentials.js +1 -1
- package/dist/credentials/JinaAiApi.credentials.js.map +1 -1
- package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js +0 -9
- package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js +13 -0
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/Snowflake.credentials.js +46 -2
- package/dist/credentials/Snowflake.credentials.js.map +1 -1
- package/dist/known/credentials.json +10 -1
- package/dist/known/nodes.json +20 -4
- package/dist/methods/defined.json +6 -0
- package/dist/methods/referenced.json +3 -0
- package/dist/nodes/Airtop/Airtop.node.js +14 -8
- package/dist/nodes/Airtop/Airtop.node.js.map +1 -1
- package/dist/nodes/Airtop/GenericFunctions.js +87 -15
- package/dist/nodes/Airtop/GenericFunctions.js.map +1 -1
- package/dist/nodes/Airtop/actions/common/fields.js +9 -0
- package/dist/nodes/Airtop/actions/common/fields.js.map +1 -1
- package/dist/nodes/Airtop/actions/common/output.utils.js +79 -0
- package/dist/nodes/Airtop/actions/common/output.utils.js.map +1 -0
- package/dist/nodes/Airtop/actions/common/session.utils.js +2 -2
- package/dist/nodes/Airtop/actions/common/session.utils.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/getPaginated.operation.js +13 -4
- package/dist/nodes/Airtop/actions/extraction/getPaginated.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/query.operation.js +21 -3
- package/dist/nodes/Airtop/actions/extraction/query.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/scrape.operation.js +2 -1
- package/dist/nodes/Airtop/actions/extraction/scrape.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/file/File.resource.js +104 -0
- package/dist/nodes/Airtop/actions/file/File.resource.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/delete.operation.js +60 -0
- package/dist/nodes/Airtop/actions/file/delete.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/get.operation.js +91 -0
- package/dist/nodes/Airtop/actions/file/get.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/getMany.operation.js +100 -0
- package/dist/nodes/Airtop/actions/file/getMany.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/helpers.js +199 -0
- package/dist/nodes/Airtop/actions/file/helpers.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/load.operation.js +85 -0
- package/dist/nodes/Airtop/actions/file/load.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/upload.operation.js +186 -0
- package/dist/nodes/Airtop/actions/file/upload.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/interaction/Interaction.resource.js +22 -1
- package/dist/nodes/Airtop/actions/interaction/Interaction.resource.js.map +1 -1
- package/dist/nodes/Airtop/actions/interaction/fill.operation.js +89 -0
- package/dist/nodes/Airtop/actions/interaction/fill.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/interaction/scroll.operation.js +219 -0
- package/dist/nodes/Airtop/actions/interaction/scroll.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/node.type.js.map +1 -1
- package/dist/nodes/Airtop/actions/router.js +13 -4
- package/dist/nodes/Airtop/actions/router.js.map +1 -1
- package/dist/nodes/Airtop/actions/session/create.operation.js +85 -32
- package/dist/nodes/Airtop/actions/session/create.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/Window.resource.js +2 -1
- package/dist/nodes/Airtop/actions/window/Window.resource.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/create.operation.js +1 -1
- package/dist/nodes/Airtop/actions/window/create.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/takeScreenshot.operation.js +26 -3
- package/dist/nodes/Airtop/actions/window/takeScreenshot.operation.js.map +1 -1
- package/dist/nodes/Airtop/constants.js +38 -5
- package/dist/nodes/Airtop/constants.js.map +1 -1
- package/dist/nodes/Airtop/countries.js +1026 -0
- package/dist/nodes/Airtop/countries.js.map +1 -0
- package/dist/nodes/Airtop/transport/index.js +6 -3
- package/dist/nodes/Airtop/transport/index.js.map +1 -1
- package/dist/nodes/Airtop/transport/types.js.map +1 -1
- package/dist/nodes/Aws/IAM/AwsIam.node.js +95 -0
- package/dist/nodes/Aws/IAM/AwsIam.node.js.map +1 -0
- package/dist/nodes/Aws/IAM/AwsIam.node.json +18 -0
- package/dist/nodes/Aws/IAM/AwsIam.svg +18 -0
- package/dist/nodes/Aws/IAM/descriptions/common.js +188 -0
- package/dist/nodes/Aws/IAM/descriptions/common.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js +175 -0
- package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js +66 -0
- package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js +50 -0
- package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js +47 -0
- package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js +70 -0
- package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/index.js +42 -0
- package/dist/nodes/Aws/IAM/descriptions/index.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js +231 -0
- package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js +47 -0
- package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js +118 -0
- package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js +66 -0
- package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js +74 -0
- package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js +68 -0
- package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/constants.js +47 -0
- package/dist/nodes/Aws/IAM/helpers/constants.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/errorHandler.js +90 -0
- package/dist/nodes/Aws/IAM/helpers/errorHandler.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/types.js +17 -0
- package/dist/nodes/Aws/IAM/helpers/types.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/utils.js +279 -0
- package/dist/nodes/Aws/IAM/helpers/utils.js.map +1 -0
- package/dist/nodes/Aws/IAM/methods/index.js +39 -0
- package/dist/nodes/Aws/IAM/methods/index.js.map +1 -0
- package/dist/nodes/Aws/IAM/methods/listSearch.js +132 -0
- package/dist/nodes/Aws/IAM/methods/listSearch.js.map +1 -0
- package/dist/nodes/Aws/IAM/transport/index.js +64 -0
- package/dist/nodes/Aws/IAM/transport/index.js.map +1 -0
- package/dist/nodes/Cron/Cron.node.js +1 -1
- package/dist/nodes/Cron/Cron.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js +2 -2
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js +2 -2
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js.map +1 -1
- package/dist/nodes/Evaluation/Evaluation/Description.node.js +146 -0
- package/dist/nodes/Evaluation/Evaluation/Description.node.js.map +1 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js +117 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +187 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/methods/index.js +42 -0
- package/dist/nodes/Evaluation/methods/index.js.map +1 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js +40 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js +119 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js +171 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js.map +1 -0
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +4 -3
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
- package/dist/nodes/Form/common.descriptions.js +2 -2
- package/dist/nodes/Form/common.descriptions.js.map +1 -1
- package/dist/nodes/Google/Drive/v2/actions/file/upload.operation.js +4 -1
- package/dist/nodes/Google/Drive/v2/actions/file/upload.operation.js.map +1 -1
- package/dist/nodes/Google/Firebase/CloudFirestore/GenericFunctions.js +1 -2
- package/dist/nodes/Google/Firebase/CloudFirestore/GenericFunctions.js.map +1 -1
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js +113 -107
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js +52 -106
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js +97 -0
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js.map +1 -0
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js +20 -17
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Google/YouTube/YouTube.node.js +4 -2
- package/dist/nodes/Google/YouTube/YouTube.node.js.map +1 -1
- package/dist/nodes/HttpRequest/GenericFunctions.js +1 -1
- package/dist/nodes/HttpRequest/GenericFunctions.js.map +1 -1
- package/dist/nodes/Interval/Interval.node.js +1 -1
- package/dist/nodes/Interval/Interval.node.js.map +1 -1
- package/dist/nodes/Jira/Jira.node.js +34 -15
- package/dist/nodes/Jira/Jira.node.js.map +1 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +2 -2
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
- package/dist/nodes/MQTT/MqttTrigger.node.js +2 -2
- package/dist/nodes/MQTT/MqttTrigger.node.js.map +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js.map +1 -1
- package/dist/nodes/Merge/Merge.node.js +3 -2
- package/dist/nodes/Merge/Merge.node.js.map +1 -1
- package/dist/nodes/Merge/v3/actions/mode/combineBySql.js +42 -4
- package/dist/nodes/Merge/v3/actions/mode/combineBySql.js.map +1 -1
- package/dist/nodes/Merge/v3/actions/versionDescription.js +1 -1
- package/dist/nodes/Merge/v3/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js +93 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharepoint.node.json +18 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js +190 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js +108 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js +129 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js +77 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js +45 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js +175 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js +83 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js +203 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js +99 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js +65 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js +105 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js +17 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js +252 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js +42 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js +222 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js +104 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js +54 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js +46 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js +387 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.json +18 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js +17 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js +147 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/transport/index.js.map +1 -1
- package/dist/nodes/MongoDb/GenericFunctions.js +9 -2
- package/dist/nodes/MongoDb/GenericFunctions.js.map +1 -1
- package/dist/nodes/MongoDb/MongoDb.node.js +25 -5
- package/dist/nodes/MongoDb/MongoDb.node.js.map +1 -1
- package/dist/nodes/PostBin/BinDescription.js +1 -1
- package/dist/nodes/PostBin/BinDescription.js.map +1 -1
- package/dist/nodes/PostBin/GenericFunctions.js +5 -5
- package/dist/nodes/PostBin/GenericFunctions.js.map +1 -1
- package/dist/nodes/PostBin/PostBin.node.js +1 -1
- package/dist/nodes/PostBin/PostBin.node.js.map +1 -1
- package/dist/nodes/PostBin/RequestDescription.js +2 -2
- package/dist/nodes/PostBin/RequestDescription.js.map +1 -1
- package/dist/nodes/Postgres/PostgresTrigger.node.js +2 -2
- package/dist/nodes/Postgres/PostgresTrigger.node.js.map +1 -1
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js +2 -2
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +8 -3
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/utils.js +43 -0
- package/dist/nodes/RespondToWebhook/utils.js.map +1 -0
- package/dist/nodes/Schedule/ScheduleTrigger.node.js +1 -1
- package/dist/nodes/Schedule/ScheduleTrigger.node.js.map +1 -1
- package/dist/nodes/Snowflake/GenericFunctions.js +34 -2
- package/dist/nodes/Snowflake/GenericFunctions.js.map +1 -1
- package/dist/nodes/Snowflake/Snowflake.node.js +5 -7
- package/dist/nodes/Snowflake/Snowflake.node.js.map +1 -1
- package/dist/nodes/SseTrigger/SseTrigger.node.js +2 -2
- package/dist/nodes/SseTrigger/SseTrigger.node.js.map +1 -1
- package/dist/nodes/Telegram/Telegram.node.js +5 -1
- package/dist/nodes/Telegram/Telegram.node.js.map +1 -1
- package/dist/nodes/Transform/Summarize/utils.js +2 -1
- package/dist/nodes/Transform/Summarize/utils.js.map +1 -1
- package/dist/test/setup.js +1 -0
- package/dist/test/setup.js.map +1 -1
- package/dist/types/credentials.json +7 -7
- package/dist/types/nodes.json +27 -23
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +12 -2
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
- package/package.json +15 -12
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.js +0 -119
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.js.map +0 -1
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.json +0 -14
- /package/dist/{credentials/icons/SharePoint.svg → nodes/Microsoft/SharePoint/microsoftSharePoint.svg} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../nodes/Transform/Summarize/utils.ts"],"sourcesContent":["import get from 'lodash/get';\nimport {\n\ttype GenericValue,\n\ttype IDataObject,\n\ttype IExecuteFunctions,\n\tNodeOperationError,\n} from 'n8n-workflow';\n\ntype AggregationType =\n\t| 'append'\n\t| 'average'\n\t| 'concatenate'\n\t| 'count'\n\t| 'countUnique'\n\t| 'max'\n\t| 'min'\n\t| 'sum';\n\nexport type Aggregation = {\n\taggregation: AggregationType;\n\tfield: string;\n\tincludeEmpty?: boolean;\n\tseparateBy?: string;\n\tcustomSeparator?: string;\n};\n\nexport type Aggregations = Aggregation[];\n\nconst AggregationDisplayNames = {\n\tappend: 'appended_',\n\taverage: 'average_',\n\tconcatenate: 'concatenated_',\n\tcount: 'count_',\n\tcountUnique: 'unique_count_',\n\tmax: 'max_',\n\tmin: 'min_',\n\tsum: 'sum_',\n};\n\nexport const NUMERICAL_AGGREGATIONS = ['average', 'sum'];\n\nexport type SummarizeOptions = {\n\tcontinueIfFieldNotFound: boolean;\n\tdisableDotNotation?: boolean;\n\toutputFormat?: 'separateItems' | 'singleItem';\n\tskipEmptySplitFields?: boolean;\n};\n\nexport type ValueGetterFn = (\n\titem: IDataObject,\n\tfield: string,\n) => IDataObject | IDataObject[] | GenericValue | GenericValue[];\n\nfunction isEmpty<T>(value: T) {\n\treturn value === undefined || value === null || value === '';\n}\n\nfunction normalizeFieldName(fieldName: string) {\n\treturn fieldName.replace(/[\\]\\[\"]/g, '').replace(/[ .]/g, '_');\n}\n\nexport const fieldValueGetter = (disableDotNotation?: boolean) => {\n\treturn (item: IDataObject, field: string) =>\n\t\tdisableDotNotation ? item[field] : get(item, field);\n};\n\nexport function checkIfFieldExists(\n\tthis: IExecuteFunctions,\n\titems: IDataObject[],\n\taggregations: Aggregations,\n\tgetValue: ValueGetterFn,\n) {\n\tfor (const aggregation of aggregations) {\n\t\tif (aggregation.field === '') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst exist = items.some((item) => getValue(item, aggregation.field) !== undefined);\n\t\tif (!exist) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t`The field '${aggregation.field}' does not exist in any items`,\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction aggregate(items: IDataObject[], entry: Aggregation, getValue: ValueGetterFn) {\n\tconst { aggregation, field } = entry;\n\tlet data = [...items];\n\n\tif (NUMERICAL_AGGREGATIONS.includes(aggregation)) {\n\t\tdata = data.filter(\n\t\t\t(item) => typeof getValue(item, field) === 'number' && !isEmpty(getValue(item, field)),\n\t\t);\n\t}\n\n\tswitch (aggregation) {\n\t\t//combine operations\n\t\tcase 'append':\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\tdata = data.filter((item) => !isEmpty(getValue(item, field)));\n\t\t\t}\n\t\t\treturn data.map((item) => getValue(item, field));\n\t\tcase 'concatenate':\n\t\t\tconst separateBy = entry.separateBy === 'other' ? entry.customSeparator : entry.separateBy;\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\tdata = data.filter((item) => !isEmpty(getValue(item, field)));\n\t\t\t}\n\t\t\treturn data\n\t\t\t\t.map((item) => {\n\t\t\t\t\tlet value = getValue(item, field);\n\t\t\t\t\tif (typeof value === 'object') {\n\t\t\t\t\t\tvalue = JSON.stringify(value);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value === 'undefined') {\n\t\t\t\t\t\tvalue = 'undefined';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value;\n\t\t\t\t})\n\t\t\t\t.join(separateBy);\n\n\t\t//numerical operations\n\t\tcase 'average':\n\t\t\treturn (\n\t\t\t\tdata.reduce((acc, item) => {\n\t\t\t\t\treturn acc + (getValue(item, field) as number);\n\t\t\t\t}, 0) / data.length\n\t\t\t);\n\t\tcase 'sum':\n\t\t\treturn data.reduce((acc, item) => {\n\t\t\t\treturn acc + (getValue(item, field) as number);\n\t\t\t}, 0);\n\t\t//comparison operations\n\t\tcase 'min':\n\t\t\tlet min;\n\t\t\tfor (const item of data) {\n\t\t\t\tconst value = getValue(item, field);\n\t\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\t\tif (min === undefined || value < min) {\n\t\t\t\t\t\tmin = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn min ?? null;\n\t\tcase 'max':\n\t\t\tlet max;\n\t\t\tfor (const item of data) {\n\t\t\t\tconst value = getValue(item, field);\n\t\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\t\tif (max === undefined || value > max) {\n\t\t\t\t\t\tmax = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn max ?? null;\n\n\t\t//count operations\n\t\tcase 'countUnique':\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\treturn new Set(data.map((item) => getValue(item, field)).filter((item) => !isEmpty(item)))\n\t\t\t\t\t.size;\n\t\t\t}\n\t\t\treturn new Set(data.map((item) => getValue(item, field))).size;\n\n\t\tdefault:\n\t\t\t//count by default\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\treturn data.filter((item) => !isEmpty(getValue(item, field))).length;\n\t\t\t}\n\t\t\treturn data.length;\n\t}\n}\n\nfunction aggregateData(\n\tdata: IDataObject[],\n\tfieldsToSummarize: Aggregations,\n\toptions: SummarizeOptions,\n\tgetValue: ValueGetterFn,\n): { returnData: IDataObject; pairedItems?: number[] } {\n\tconst returnData = Object.fromEntries(\n\t\tfieldsToSummarize.map((aggregation) => {\n\t\t\tconst key = normalizeFieldName(\n\t\t\t\t`${AggregationDisplayNames[aggregation.aggregation]}${aggregation.field}`,\n\t\t\t);\n\t\t\tconst result = aggregate(data, aggregation, getValue);\n\t\t\treturn [key, result];\n\t\t}),\n\t);\n\n\tif (options.outputFormat === 'singleItem') {\n\t\treturn { returnData };\n\t}\n\n\treturn { returnData, pairedItems: data.map((item) => item._itemIndex as number) };\n}\n\ntype AggregationResult = { returnData: IDataObject; pairedItems?: number[] };\ntype NestedAggregationResult =\n\t| AggregationResult\n\t| { fieldName: string; splits: Map<unknown, NestedAggregationResult> };\n\n// Using Map to preserve types\n// With a plain JS object, keys are converted to string\nexport function aggregateAndSplitData({\n\tsplitKeys,\n\tinputItems,\n\tfieldsToSummarize,\n\toptions,\n\tgetValue,\n\tconvertKeysToString = false,\n}: {\n\tsplitKeys: string[] | undefined;\n\tinputItems: IDataObject[];\n\tfieldsToSummarize: Aggregations;\n\toptions: SummarizeOptions;\n\tgetValue: ValueGetterFn;\n\tconvertKeysToString?: boolean; // Legacy option for v1\n}): NestedAggregationResult {\n\tif (!splitKeys?.length) {\n\t\treturn aggregateData(inputItems, fieldsToSummarize, options, getValue);\n\t}\n\n\tconst [firstSplitKey, ...restSplitKeys] = splitKeys;\n\n\tconst groupedItems = new Map<unknown, IDataObject[]>();\n\tfor (const item of inputItems) {\n\t\tlet splitValue = getValue(item, firstSplitKey);\n\n\t\tif (splitValue && typeof splitValue === 'object') {\n\t\t\tsplitValue = JSON.stringify(splitValue);\n\t\t}\n\n\t\tif (convertKeysToString) {\n\t\t\tsplitValue = String(splitValue);\n\t\t}\n\n\t\tif (options.skipEmptySplitFields && typeof splitValue !== 'number' && !splitValue) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst group = groupedItems.get(splitValue) ?? [];\n\t\tgroupedItems.set(splitValue, group.concat([item]));\n\t}\n\n\tconst splits = new Map(\n\t\tArray.from(groupedItems.entries()).map(([groupKey, items]) => [\n\t\t\tgroupKey,\n\t\t\taggregateAndSplitData({\n\t\t\t\tsplitKeys: restSplitKeys,\n\t\t\t\tinputItems: items,\n\t\t\t\tfieldsToSummarize,\n\t\t\t\toptions,\n\t\t\t\tgetValue,\n\t\t\t}),\n\t\t]),\n\t);\n\n\treturn { fieldName: firstSplitKey, splits };\n}\n\nexport function flattenAggregationResultToObject(result: NestedAggregationResult): IDataObject {\n\tif ('splits' in result) {\n\t\treturn Object.fromEntries(\n\t\t\tArray.from(result.splits.entries()).map(([key, value]) => [\n\t\t\t\tkey,\n\t\t\t\tflattenAggregationResultToObject(value),\n\t\t\t]),\n\t\t);\n\t}\n\n\treturn result.returnData;\n}\n\nexport function flattenAggregationResultToArray(\n\tresult: NestedAggregationResult,\n): AggregationResult[] {\n\tif ('splits' in result) {\n\t\treturn Array.from(result.splits.entries()).flatMap(([value, innerResult]) =>\n\t\t\tflattenAggregationResultToArray(innerResult).map((v) => {\n\t\t\t\tv.returnData[normalizeFieldName(result.fieldName)] = value as IDataObject;\n\t\t\t\treturn v;\n\t\t\t}),\n\t\t);\n\t}\n\treturn [result];\n}\n"],"mappings":"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","names":["get"]}
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Transform/Summarize/utils.ts"],"sourcesContent":["import get from 'lodash/get';\nimport {\n\ttype GenericValue,\n\ttype IDataObject,\n\ttype IExecuteFunctions,\n\tNodeOperationError,\n} from 'n8n-workflow';\n\ntype AggregationType =\n\t| 'append'\n\t| 'average'\n\t| 'concatenate'\n\t| 'count'\n\t| 'countUnique'\n\t| 'max'\n\t| 'min'\n\t| 'sum';\n\nexport type Aggregation = {\n\taggregation: AggregationType;\n\tfield: string;\n\tincludeEmpty?: boolean;\n\tseparateBy?: string;\n\tcustomSeparator?: string;\n};\n\nexport type Aggregations = Aggregation[];\n\nconst AggregationDisplayNames = {\n\tappend: 'appended_',\n\taverage: 'average_',\n\tconcatenate: 'concatenated_',\n\tcount: 'count_',\n\tcountUnique: 'unique_count_',\n\tmax: 'max_',\n\tmin: 'min_',\n\tsum: 'sum_',\n};\n\nexport const NUMERICAL_AGGREGATIONS = ['average', 'sum'];\n\nexport type SummarizeOptions = {\n\tcontinueIfFieldNotFound: boolean;\n\tdisableDotNotation?: boolean;\n\toutputFormat?: 'separateItems' | 'singleItem';\n\tskipEmptySplitFields?: boolean;\n};\n\nexport type ValueGetterFn = (\n\titem: IDataObject,\n\tfield: string,\n) => IDataObject | IDataObject[] | GenericValue | GenericValue[];\n\nfunction isEmpty<T>(value: T) {\n\treturn value === undefined || value === null || value === '';\n}\n\nfunction normalizeFieldName(fieldName: string) {\n\treturn fieldName.replace(/[\\]\\[\"]/g, '').replace(/[ .]/g, '_');\n}\n\nexport const fieldValueGetter = (disableDotNotation?: boolean) => {\n\treturn (item: IDataObject, field: string) =>\n\t\tdisableDotNotation ? item[field] : get(item, field);\n};\n\nexport function checkIfFieldExists(\n\tthis: IExecuteFunctions,\n\titems: IDataObject[],\n\taggregations: Aggregations,\n\tgetValue: ValueGetterFn,\n) {\n\tfor (const aggregation of aggregations) {\n\t\tif (aggregation.field === '') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst exist = items.some((item) => getValue(item, aggregation.field) !== undefined);\n\t\tif (!exist) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t`The field '${aggregation.field}' does not exist in any items`,\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction aggregate(items: IDataObject[], entry: Aggregation, getValue: ValueGetterFn) {\n\tconst { aggregation, field } = entry;\n\tlet data = [...items];\n\n\tif (NUMERICAL_AGGREGATIONS.includes(aggregation)) {\n\t\tdata = data.filter(\n\t\t\t(item) => typeof getValue(item, field) === 'number' && !isEmpty(getValue(item, field)),\n\t\t);\n\t}\n\n\tswitch (aggregation) {\n\t\t//combine operations\n\t\tcase 'append':\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\tdata = data.filter((item) => !isEmpty(getValue(item, field)));\n\t\t\t}\n\t\t\treturn data.map((item) => getValue(item, field));\n\t\tcase 'concatenate':\n\t\t\tconst separateBy = entry.separateBy === 'other' ? entry.customSeparator : entry.separateBy;\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\tdata = data.filter((item) => !isEmpty(getValue(item, field)));\n\t\t\t}\n\t\t\treturn data\n\t\t\t\t.map((item) => {\n\t\t\t\t\tlet value = getValue(item, field);\n\t\t\t\t\tif (typeof value === 'object') {\n\t\t\t\t\t\tvalue = JSON.stringify(value);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value === 'undefined') {\n\t\t\t\t\t\tvalue = 'undefined';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value;\n\t\t\t\t})\n\t\t\t\t.join(separateBy);\n\n\t\t//numerical operations\n\t\tcase 'average':\n\t\t\treturn (\n\t\t\t\tdata.reduce((acc, item) => {\n\t\t\t\t\treturn acc + (getValue(item, field) as number);\n\t\t\t\t}, 0) / data.length\n\t\t\t);\n\t\tcase 'sum':\n\t\t\treturn data.reduce((acc, item) => {\n\t\t\t\treturn acc + (getValue(item, field) as number);\n\t\t\t}, 0);\n\t\t//comparison operations\n\t\tcase 'min':\n\t\t\tlet min;\n\t\t\tfor (const item of data) {\n\t\t\t\tconst value = getValue(item, field);\n\t\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\t\tif (min === undefined || value < min) {\n\t\t\t\t\t\tmin = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn min ?? null;\n\t\tcase 'max':\n\t\t\tlet max;\n\t\t\tfor (const item of data) {\n\t\t\t\tconst value = getValue(item, field);\n\t\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\t\tif (max === undefined || value > max) {\n\t\t\t\t\t\tmax = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn max ?? null;\n\n\t\t//count operations\n\t\tcase 'countUnique':\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\treturn new Set(data.map((item) => getValue(item, field)).filter((item) => !isEmpty(item)))\n\t\t\t\t\t.size;\n\t\t\t}\n\t\t\treturn new Set(data.map((item) => getValue(item, field))).size;\n\n\t\tdefault:\n\t\t\t//count by default\n\t\t\tif (!entry.includeEmpty) {\n\t\t\t\treturn data.filter((item) => !isEmpty(getValue(item, field))).length;\n\t\t\t}\n\t\t\treturn data.length;\n\t}\n}\n\nfunction aggregateData(\n\tdata: IDataObject[],\n\tfieldsToSummarize: Aggregations,\n\toptions: SummarizeOptions,\n\tgetValue: ValueGetterFn,\n): { returnData: IDataObject; pairedItems?: number[] } {\n\tconst returnData = Object.fromEntries(\n\t\tfieldsToSummarize.map((aggregation) => {\n\t\t\tconst key = normalizeFieldName(\n\t\t\t\t`${AggregationDisplayNames[aggregation.aggregation]}${aggregation.field}`,\n\t\t\t);\n\t\t\tconst result = aggregate(data, aggregation, getValue);\n\t\t\treturn [key, result];\n\t\t}),\n\t);\n\n\tif (options.outputFormat === 'singleItem') {\n\t\treturn { returnData };\n\t}\n\n\treturn { returnData, pairedItems: data.map((item) => item._itemIndex as number) };\n}\n\ntype AggregationResult = { returnData: IDataObject; pairedItems?: number[] };\ntype NestedAggregationResult =\n\t| AggregationResult\n\t| { fieldName: string; splits: Map<unknown, NestedAggregationResult> };\n\n// Using Map to preserve types\n// With a plain JS object, keys are converted to string\nexport function aggregateAndSplitData({\n\tsplitKeys,\n\tinputItems,\n\tfieldsToSummarize,\n\toptions,\n\tgetValue,\n\tconvertKeysToString = false,\n}: {\n\tsplitKeys: string[] | undefined;\n\tinputItems: IDataObject[];\n\tfieldsToSummarize: Aggregations;\n\toptions: SummarizeOptions;\n\tgetValue: ValueGetterFn;\n\tconvertKeysToString?: boolean; // Legacy option for v1\n}): NestedAggregationResult {\n\tif (!splitKeys?.length) {\n\t\treturn aggregateData(inputItems, fieldsToSummarize, options, getValue);\n\t}\n\n\tconst [firstSplitKey, ...restSplitKeys] = splitKeys;\n\n\tconst groupedItems = new Map<unknown, IDataObject[]>();\n\tfor (const item of inputItems) {\n\t\tlet splitValue = getValue(item, firstSplitKey);\n\n\t\tif (splitValue && typeof splitValue === 'object') {\n\t\t\tsplitValue = JSON.stringify(splitValue);\n\t\t}\n\n\t\tif (convertKeysToString) {\n\t\t\tsplitValue = String(splitValue);\n\t\t}\n\n\t\tif (options.skipEmptySplitFields && typeof splitValue !== 'number' && !splitValue) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst group = groupedItems.get(splitValue) ?? [];\n\t\tgroupedItems.set(splitValue, group.concat([item]));\n\t}\n\n\tconst splits = new Map(\n\t\tArray.from(groupedItems.entries()).map(([groupKey, items]) => [\n\t\t\tgroupKey,\n\t\t\taggregateAndSplitData({\n\t\t\t\tsplitKeys: restSplitKeys,\n\t\t\t\tinputItems: items,\n\t\t\t\tfieldsToSummarize,\n\t\t\t\toptions,\n\t\t\t\tgetValue,\n\t\t\t\tconvertKeysToString,\n\t\t\t}),\n\t\t]),\n\t);\n\n\treturn { fieldName: firstSplitKey, splits };\n}\n\nexport function flattenAggregationResultToObject(result: NestedAggregationResult): IDataObject {\n\tif ('splits' in result) {\n\t\treturn Object.fromEntries(\n\t\t\tArray.from(result.splits.entries()).map(([key, value]) => [\n\t\t\t\tkey,\n\t\t\t\tflattenAggregationResultToObject(value),\n\t\t\t]),\n\t\t);\n\t}\n\n\treturn result.returnData;\n}\n\nexport function flattenAggregationResultToArray(\n\tresult: NestedAggregationResult,\n): AggregationResult[] {\n\tif ('splits' in result) {\n\t\treturn Array.from(result.splits.entries()).flatMap(([value, innerResult]) =>\n\t\t\tflattenAggregationResultToArray(innerResult).map((v) => {\n\t\t\t\tv.returnData[normalizeFieldName(result.fieldName)] = value as IDataObject;\n\t\t\t\treturn v;\n\t\t\t}),\n\t\t);\n\t}\n\treturn [result];\n}\n"],"mappings":"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","names":["get"]}
|
package/dist/test/setup.js
CHANGED
package/dist/test/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../test/setup.ts"],"sourcesContent":["import 'reflect-metadata';\n\n// Disable task runners until we have fixed the \"run test workflows\" test\n// to mock the Code Node execution\nprocess.env.N8N_RUNNERS_ENABLED = 'false';\nprocess.env.N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS = 'false';\n"],"mappings":";AAAA,8BAAO;AAIP,QAAQ,IAAI,sBAAsB;AAClC,QAAQ,IAAI,wCAAwC;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../test/setup.ts"],"sourcesContent":["import 'reflect-metadata';\n\n// Disable task runners until we have fixed the \"run test workflows\" test\n// to mock the Code Node execution\nprocess.env.N8N_RUNNERS_ENABLED = 'false';\nprocess.env.N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS = 'false';\nprocess.env.N8N_VERSION = '0.0.0-test';\n"],"mappings":";AAAA,8BAAO;AAIP,QAAQ,IAAI,sBAAsB;AAClC,QAAQ,IAAI,wCAAwC;AACpD,QAAQ,IAAI,cAAc;","names":[]}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{"name":"auth0ManagementApi","displayName":"Auth0 Management API","documentationUrl":"auth0management","httpRequestNode":{"name":"Auth0","docsUrl":"https://auth0.com/docs/api/management/v2","apiBaseUrlPlaceholder":"https://your-tenant.auth0.com/api/v2/users/"},"properties":[{"displayName":"Session Token","name":"sessionToken","type":"hidden","typeOptions":{"expirable":true,"password":true},"default":""},{"displayName":"Auth0 Domain","name":"domain","type":"string","required":true,"default":"your-domain.eu.auth0.com"},{"displayName":"Client ID","name":"clientId","type":"string","required":true,"default":""},{"displayName":"Client Secret","name":"clientSecret","type":"string","typeOptions":{"password":true},"required":true,"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.sessionToken}}"}}},"test":{"request":{"baseURL":"=https://{{$credentials.domain}}","url":"/api/v2/clients"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/Auth0.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/Auth0.dark.svg"},"supportedNodes":[]},
|
|
19
19
|
{"name":"automizyApi","displayName":"Automizy API","documentationUrl":"automizy","properties":[{"displayName":"This service may no longer exist and will be removed from n8n in a future release.","name":"deprecated","type":"notice","default":""},{"displayName":"API Token","name":"apiToken","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["automizy"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Automizy/automizy.png"},
|
|
20
20
|
{"name":"autopilotApi","displayName":"Autopilot API","documentationUrl":"autopilot","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["autopilot","autopilotTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Autopilot/autopilot.svg"},
|
|
21
|
-
{"name":"aws","displayName":"AWS","documentationUrl":"aws","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Cape Town) - af-south-1","value":"af-south-1"},{"name":"Asia Pacific (Hong Kong) - ap-east-1","value":"ap-east-1"},{"name":"Asia Pacific (Mumbai) - ap-south-1","value":"ap-south-1"},{"name":"Asia Pacific (Hyderabad) - ap-south-2","value":"ap-south-2"},{"name":"Asia Pacific (Singapore) - ap-southeast-1","value":"ap-southeast-1"},{"name":"Asia Pacific (Sydney) - ap-southeast-2","value":"ap-southeast-2"},{"name":"Asia Pacific (Jakarta) - ap-southeast-3","value":"ap-southeast-3"},{"name":"Asia Pacific (Melbourne) - ap-southeast-4","value":"ap-southeast-4"},{"name":"Asia Pacific (Malaysia) - ap-southeast-5","value":"ap-southeast-5"},{"name":"Asia Pacific (Thailand) - ap-southeast-7","value":"ap-southeast-7"},{"name":"Asia Pacific (Tokyo) - ap-northeast-1","value":"ap-northeast-1"},{"name":"Asia Pacific (Seoul) - ap-northeast-2","value":"ap-northeast-2"},{"name":"Asia Pacific (Osaka) - ap-northeast-3","value":"ap-northeast-3"},{"name":"Canada (Central) - ca-central-1","value":"ca-central-1"},{"name":"Canada West (Calgary) - ca-west-1","value":"ca-west-1"},{"name":"China (Beijing) - cn-north-1","value":"cn-north-1"},{"name":"China (Ningxia) - cn-northwest-1","value":"cn-northwest-1"},{"name":"Europe (Frankfurt) - eu-central-1","value":"eu-central-1"},{"name":"Europe (Zurich) - eu-central-2","value":"eu-central-2"},{"name":"Europe (Stockholm) - eu-north-1","value":"eu-north-1"},{"name":"Europe (Milan) - eu-south-1","value":"eu-south-1"},{"name":"Europe (Spain) - eu-south-2","value":"eu-south-2"},{"name":"Europe (Ireland) - eu-west-1","value":"eu-west-1"},{"name":"Europe (London) - eu-west-2","value":"eu-west-2"},{"name":"Europe (Paris) - eu-west-3","value":"eu-west-3"},{"name":"Israel (Tel Aviv) - il-central-1","value":"il-central-1"},{"name":"Middle East (UAE) - me-central-1","value":"me-central-1"},{"name":"Middle East (Bahrain) - me-south-1","value":"me-south-1"},{"name":"Mexico (Central) - mx-central-1","value":"mx-central-1"},{"name":"South America (São Paulo) - sa-east-1","value":"sa-east-1"},{"name":"US East (N. Virginia) - us-east-1","value":"us-east-1"},{"name":"US East (Ohio) - us-east-2","value":"us-east-2"},{"name":"US East (GovCloud) - us-gov-east-1","value":"us-gov-east-1"},{"name":"US West (N. California) - us-west-1","value":"us-west-1"},{"name":"US West (Oregon) - us-west-2","value":"us-west-2"},{"name":"US West (GovCloud) - us-gov-west-1","value":"us-gov-west-1"}],"default":"us-east-1"},{"displayName":"Access Key ID","name":"accessKeyId","type":"string","default":""},{"displayName":"Secret Access Key","name":"secretAccessKey","type":"string","default":"","typeOptions":{"password":true}},{"displayName":"Temporary Security Credentials","name":"temporaryCredentials","description":"Support for temporary credentials from AWS STS","type":"boolean","default":false},{"displayName":"Session Token","name":"sessionToken","type":"string","displayOptions":{"show":{"temporaryCredentials":[true]}},"default":"","typeOptions":{"password":true}},{"displayName":"Custom Endpoints","name":"customEndpoints","type":"boolean","default":false},{"displayName":"Rekognition Endpoint","name":"rekognitionEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://rekognition.{region}.amazonaws.com"},{"displayName":"Lambda Endpoint","name":"lambdaEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://lambda.{region}.amazonaws.com"},{"displayName":"SNS Endpoint","name":"snsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sns.{region}.amazonaws.com"},{"displayName":"SES Endpoint","name":"sesEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://email.{region}.amazonaws.com"},{"displayName":"SQS Endpoint","name":"sqsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sqs.{region}.amazonaws.com"},{"displayName":"S3 Endpoint","name":"s3Endpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://s3.{region}.amazonaws.com"},{"displayName":"SSM Endpoint","name":"ssmEndpoint","description":"Endpoint for AWS Systems Manager (SSM)","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://ssm.{region}.amazonaws.com"}],"test":{"request":{"baseURL":"=https://sts.{{$credentials.region}}.amazonaws.com","url":"?Action=GetCallerIdentity&Version=2011-06-15","method":"POST"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/AWS.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/AWS.dark.svg"},"supportedNodes":["awsLambda","awsSns","awsSnsTrigger","awsCertificateManager","awsCognito","awsComprehend","awsDynamoDb","awsElb","awsRekognition","awsS3","awsSes","awsSqs","awsTextract","awsTranscribe"],"authenticate":{}},
|
|
21
|
+
{"name":"aws","displayName":"AWS","documentationUrl":"aws","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Cape Town) - af-south-1","value":"af-south-1"},{"name":"Asia Pacific (Hong Kong) - ap-east-1","value":"ap-east-1"},{"name":"Asia Pacific (Mumbai) - ap-south-1","value":"ap-south-1"},{"name":"Asia Pacific (Hyderabad) - ap-south-2","value":"ap-south-2"},{"name":"Asia Pacific (Singapore) - ap-southeast-1","value":"ap-southeast-1"},{"name":"Asia Pacific (Sydney) - ap-southeast-2","value":"ap-southeast-2"},{"name":"Asia Pacific (Jakarta) - ap-southeast-3","value":"ap-southeast-3"},{"name":"Asia Pacific (Melbourne) - ap-southeast-4","value":"ap-southeast-4"},{"name":"Asia Pacific (Malaysia) - ap-southeast-5","value":"ap-southeast-5"},{"name":"Asia Pacific (Thailand) - ap-southeast-7","value":"ap-southeast-7"},{"name":"Asia Pacific (Tokyo) - ap-northeast-1","value":"ap-northeast-1"},{"name":"Asia Pacific (Seoul) - ap-northeast-2","value":"ap-northeast-2"},{"name":"Asia Pacific (Osaka) - ap-northeast-3","value":"ap-northeast-3"},{"name":"Canada (Central) - ca-central-1","value":"ca-central-1"},{"name":"Canada West (Calgary) - ca-west-1","value":"ca-west-1"},{"name":"China (Beijing) - cn-north-1","value":"cn-north-1"},{"name":"China (Ningxia) - cn-northwest-1","value":"cn-northwest-1"},{"name":"Europe (Frankfurt) - eu-central-1","value":"eu-central-1"},{"name":"Europe (Zurich) - eu-central-2","value":"eu-central-2"},{"name":"Europe (Stockholm) - eu-north-1","value":"eu-north-1"},{"name":"Europe (Milan) - eu-south-1","value":"eu-south-1"},{"name":"Europe (Spain) - eu-south-2","value":"eu-south-2"},{"name":"Europe (Ireland) - eu-west-1","value":"eu-west-1"},{"name":"Europe (London) - eu-west-2","value":"eu-west-2"},{"name":"Europe (Paris) - eu-west-3","value":"eu-west-3"},{"name":"Israel (Tel Aviv) - il-central-1","value":"il-central-1"},{"name":"Middle East (UAE) - me-central-1","value":"me-central-1"},{"name":"Middle East (Bahrain) - me-south-1","value":"me-south-1"},{"name":"Mexico (Central) - mx-central-1","value":"mx-central-1"},{"name":"South America (São Paulo) - sa-east-1","value":"sa-east-1"},{"name":"US East (N. Virginia) - us-east-1","value":"us-east-1"},{"name":"US East (Ohio) - us-east-2","value":"us-east-2"},{"name":"US East (GovCloud) - us-gov-east-1","value":"us-gov-east-1"},{"name":"US West (N. California) - us-west-1","value":"us-west-1"},{"name":"US West (Oregon) - us-west-2","value":"us-west-2"},{"name":"US West (GovCloud) - us-gov-west-1","value":"us-gov-west-1"}],"default":"us-east-1"},{"displayName":"Access Key ID","name":"accessKeyId","type":"string","default":""},{"displayName":"Secret Access Key","name":"secretAccessKey","type":"string","default":"","typeOptions":{"password":true}},{"displayName":"Temporary Security Credentials","name":"temporaryCredentials","description":"Support for temporary credentials from AWS STS","type":"boolean","default":false},{"displayName":"Session Token","name":"sessionToken","type":"string","displayOptions":{"show":{"temporaryCredentials":[true]}},"default":"","typeOptions":{"password":true}},{"displayName":"Custom Endpoints","name":"customEndpoints","type":"boolean","default":false},{"displayName":"Rekognition Endpoint","name":"rekognitionEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://rekognition.{region}.amazonaws.com"},{"displayName":"Lambda Endpoint","name":"lambdaEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://lambda.{region}.amazonaws.com"},{"displayName":"SNS Endpoint","name":"snsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sns.{region}.amazonaws.com"},{"displayName":"SES Endpoint","name":"sesEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://email.{region}.amazonaws.com"},{"displayName":"SQS Endpoint","name":"sqsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sqs.{region}.amazonaws.com"},{"displayName":"S3 Endpoint","name":"s3Endpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://s3.{region}.amazonaws.com"},{"displayName":"SSM Endpoint","name":"ssmEndpoint","description":"Endpoint for AWS Systems Manager (SSM)","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://ssm.{region}.amazonaws.com"}],"test":{"request":{"baseURL":"=https://sts.{{$credentials.region}}.amazonaws.com","url":"?Action=GetCallerIdentity&Version=2011-06-15","method":"POST"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/AWS.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/AWS.dark.svg"},"supportedNodes":["awsLambda","awsSns","awsSnsTrigger","awsCertificateManager","awsCognito","awsComprehend","awsDynamoDb","awsElb","awsIam","awsRekognition","awsS3","awsSes","awsSqs","awsTextract","awsTranscribe"],"authenticate":{}},
|
|
22
22
|
{"name":"azureStorageOAuth2Api","displayName":"Azure Storage OAuth2 API","extends":["microsoftOAuth2Api"],"documentationUrl":"azurestorage","properties":[{"displayName":"Account","name":"account","type":"string","default":""},{"displayName":"Base URL","name":"baseUrl","type":"hidden","default":"=https://{{ $self[\"account\"] }}.blob.core.windows.net"},{"displayName":"Scope","name":"scope","type":"hidden","default":"https://storage.azure.com/.default"}],"supportedNodes":["azureStorage"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.dark.svg"}},
|
|
23
23
|
{"name":"azureStorageSharedKeyApi","displayName":"Azure Storage Shared Key API","documentationUrl":"azurestorage","properties":[{"displayName":"Account","name":"account","description":"Account name","type":"string","default":""},{"displayName":"Key","name":"key","description":"Account key","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Base URL","name":"baseUrl","type":"hidden","default":"=https://{{ $self[\"account\"] }}.blob.core.windows.net"}],"supportedNodes":["azureStorage"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.dark.svg"},"authenticate":{}},
|
|
24
24
|
{"name":"bambooHrApi","displayName":"BambooHR API","documentationUrl":"bambooHr","properties":[{"displayName":"Subdomain","name":"subdomain","type":"string","default":""},{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["bambooHr"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/BambooHr/bambooHr.png"},
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
{"name":"gongOAuth2Api","extends":["oAuth2Api"],"displayName":"Gong OAuth2 API","documentationUrl":"gong","properties":[{"displayName":"Base URL","name":"baseUrl","type":"string","default":"https://api.gong.io"},{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://app.gong.io/oauth2/authorize","required":true},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://app.gong.io/oauth2/generate-customer-token","required":true},{"displayName":"Scope","name":"scope","type":"hidden","default":"api:calls:read:transcript api:provisioning:read api:workspaces:read api:meetings:user:delete api:crm:get-objects api:data-privacy:delete api:crm:schema api:flows:write api:crm:upload api:meetings:integration:status api:calls:read:extensive api:meetings:user:update api:integration-settings:write api:settings:scorecards:read api:stats:scorecards api:stats:interaction api:stats:user-actions api:crm:integration:delete api:calls:read:basic api:calls:read:media-url api:digital-interactions:write api:crm:integrations:read api:library:read api:data-privacy:read api:users:read api:logs:read api:calls:create api:meetings:user:create api:stats:user-actions:detailed api:settings:trackers:read api:crm:integration:register api:provisioning:read-write api:engagement-data:write api:permission-profile:read api:permission-profile:write api:flows:read api:crm-calls:manual-association:read"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":""},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"header"}],"supportedNodes":["gong"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Gong/gong.svg"},
|
|
112
112
|
{"name":"googleAdsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Ads OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Developer Token","name":"developerToken","type":"string","typeOptions":{"password":true},"default":"","required":true},{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/adwords"}],"supportedNodes":["googleAds"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Ads/googleAds.svg"},
|
|
113
113
|
{"name":"googleAnalyticsOAuth2","extends":["googleOAuth2Api"],"displayName":"Google Analytics OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.readonly"}],"supportedNodes":["googleAnalytics"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Analytics/analytics.svg"},
|
|
114
|
-
{"name":"googleApi","displayName":"Google Service Account API","documentationUrl":"google/service-account","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Johannesburg) - africa-south1","value":"africa-south1"},{"name":"Asia Pacific (Changhua County) - asia-east1","value":"asia-east1"},{"name":"Asia Pacific (Hong Kong) - asia-east2","value":"asia-east2"},{"name":"Asia Pacific (Tokyo) - asia-northeast1","value":"asia-northeast1"},{"name":"Asia Pacific (Osaka) - asia-northeast2","value":"asia-northeast2"},{"name":"Asia Pacific (Seoul) - asia-northeast3","value":"asia-northeast3"},{"name":"Asia Pacific (Mumbai) - asia-south1","value":"asia-south1"},{"name":"Asia Pacific (Delhi) - asia-south2","value":"asia-south2"},{"name":"Asia Pacific (Jurong West) - asia-southeast1","value":"asia-southeast1"},{"name":"Asia Pacific (Jakarta) - asia-southeast2","value":"asia-southeast2"},{"name":"Asia Pacific (Sydney) - australia-southeast1","value":"australia-southeast1"},{"name":"Asia Pacific (Melbourne) - australia-southeast2","value":"australia-southeast2"},{"name":"Europe (Warsaw) - europe-central2","value":"europe-central2"},{"name":"Europe (Hamina) - europe-north1","value":"europe-north1"},{"name":"Europe (Madrid) - europe-southwest1","value":"europe-southwest1"},{"name":"Europe (St. Ghislain) - europe-west1","value":"europe-west1"},{"name":"Europe (Berlin) - europe-west10","value":"europe-west10"},{"name":"Europe (Turin) - europe-west12","value":"europe-west12"},{"name":"Europe (London) - europe-west2","value":"europe-west2"},{"name":"Europe (Frankfurt) - europe-west3","value":"europe-west3"},{"name":"Europe (Eemshaven) - europe-west4","value":"europe-west4"},{"name":"Europe (Zurich) - europe-west6","value":"europe-west6"},{"name":"Europe (Milan) - europe-west8","value":"europe-west8"},{"name":"Europe (Paris) - europe-west9","value":"europe-west9"},{"name":"Middle East (Doha) - me-central1","value":"me-central1"},{"name":"Middle East (Dammam) - me-central2","value":"me-central2"},{"name":"Middle East (Tel Aviv) - me-west1","value":"me-west1"},{"name":"Americas (Montréal) - northamerica-northeast1","value":"northamerica-northeast1"},{"name":"Americas (Toronto) - northamerica-northeast2","value":"northamerica-northeast2"},{"name":"Americas (Queretaro) - northamerica-south1","value":"northamerica-south1"},{"name":"Americas (Osasco) - southamerica-east1","value":"southamerica-east1"},{"name":"Americas (Santiago) - southamerica-west1","value":"southamerica-west1"},{"name":"Americas (Council Bluffs) - us-central1","value":"us-central1"},{"name":"Americas (Moncks Corner) - us-east1","value":"us-east1"},{"name":"Americas (Ashburn) - us-east4","value":"us-east4"},{"name":"Americas (Columbus) - us-east5","value":"us-east5"},{"name":"Americas (Dallas) - us-south1","value":"us-south1"},{"name":"Americas (The Dalles) - us-west1","value":"us-west1"},{"name":"Americas (Los Angeles) - us-west2","value":"us-west2"},{"name":"Americas (Salt Lake City) - us-west3","value":"us-west3"},{"name":"Americas (Las Vegas) - us-west4","value":"us-west4"}],"default":"us-central1","description":"The region where the Google Cloud service is located. This applies only to specific nodes, like the Google Vertex Chat Model"},{"displayName":"Service Account Email","name":"email","type":"string","placeholder":"name@email.com","default":"","description":"The Google Service account similar to user-808@project.iam.gserviceaccount.com","required":true},{"displayName":"Private Key","name":"privateKey","type":"string","default":"","placeholder":"-----BEGIN PRIVATE KEY-----\nXIYEvQIBADANBg<...>0IhA7TMoGYPQc=\n-----END PRIVATE KEY-----\n","description":"Enter the private key located in the JSON file downloaded from Google Cloud Console","required":true,"typeOptions":{"password":true}},{"displayName":"Impersonate a User","name":"inpersonate","type":"boolean","default":false},{"displayName":"Email","name":"delegatedEmail","type":"string","default":"","displayOptions":{"show":{"inpersonate":[true]}},"description":"The email address of the user for which the application is requesting delegated access"},{"displayName":"Set up for use in HTTP Request node","name":"httpNode","type":"boolean","default":false},{"displayName":"When using the HTTP Request node, you must specify the scopes you want to send. In other nodes, they're added automatically","name":"httpWarning","type":"notice","default":"","displayOptions":{"show":{"httpNode":[true]}}},{"displayName":"Scope(s)","name":"scopes","type":"string","default":"","description":"You can find the scopes for services <a href=\"https://developers.google.com/identity/protocols/oauth2/scopes\" target=\"_blank\">here</a>","displayOptions":{"show":{"httpNode":[true]}}}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":["googleBigQuery","googleBooks","googleChat","googleDocs","googleDrive","googleDriveTrigger","googleFirebaseCloudFirestore","gmail","gmailTrigger","googleSheets","googleSlides","googleTranslate"],"authenticate":{}},
|
|
114
|
+
{"name":"googleApi","displayName":"Google Service Account API","documentationUrl":"google/service-account","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Johannesburg) - africa-south1","value":"africa-south1"},{"name":"Asia Pacific (Changhua County) - asia-east1","value":"asia-east1"},{"name":"Asia Pacific (Hong Kong) - asia-east2","value":"asia-east2"},{"name":"Asia Pacific (Tokyo) - asia-northeast1","value":"asia-northeast1"},{"name":"Asia Pacific (Osaka) - asia-northeast2","value":"asia-northeast2"},{"name":"Asia Pacific (Seoul) - asia-northeast3","value":"asia-northeast3"},{"name":"Asia Pacific (Mumbai) - asia-south1","value":"asia-south1"},{"name":"Asia Pacific (Delhi) - asia-south2","value":"asia-south2"},{"name":"Asia Pacific (Jurong West) - asia-southeast1","value":"asia-southeast1"},{"name":"Asia Pacific (Jakarta) - asia-southeast2","value":"asia-southeast2"},{"name":"Asia Pacific (Sydney) - australia-southeast1","value":"australia-southeast1"},{"name":"Asia Pacific (Melbourne) - australia-southeast2","value":"australia-southeast2"},{"name":"Europe (Warsaw) - europe-central2","value":"europe-central2"},{"name":"Europe (Hamina) - europe-north1","value":"europe-north1"},{"name":"Europe (Madrid) - europe-southwest1","value":"europe-southwest1"},{"name":"Europe (St. Ghislain) - europe-west1","value":"europe-west1"},{"name":"Europe (Berlin) - europe-west10","value":"europe-west10"},{"name":"Europe (Turin) - europe-west12","value":"europe-west12"},{"name":"Europe (London) - europe-west2","value":"europe-west2"},{"name":"Europe (Frankfurt) - europe-west3","value":"europe-west3"},{"name":"Europe (Eemshaven) - europe-west4","value":"europe-west4"},{"name":"Europe (Zurich) - europe-west6","value":"europe-west6"},{"name":"Europe (Milan) - europe-west8","value":"europe-west8"},{"name":"Europe (Paris) - europe-west9","value":"europe-west9"},{"name":"Middle East (Doha) - me-central1","value":"me-central1"},{"name":"Middle East (Dammam) - me-central2","value":"me-central2"},{"name":"Middle East (Tel Aviv) - me-west1","value":"me-west1"},{"name":"Americas (Montréal) - northamerica-northeast1","value":"northamerica-northeast1"},{"name":"Americas (Toronto) - northamerica-northeast2","value":"northamerica-northeast2"},{"name":"Americas (Queretaro) - northamerica-south1","value":"northamerica-south1"},{"name":"Americas (Osasco) - southamerica-east1","value":"southamerica-east1"},{"name":"Americas (Santiago) - southamerica-west1","value":"southamerica-west1"},{"name":"Americas (Council Bluffs) - us-central1","value":"us-central1"},{"name":"Americas (Moncks Corner) - us-east1","value":"us-east1"},{"name":"Americas (Ashburn) - us-east4","value":"us-east4"},{"name":"Americas (Columbus) - us-east5","value":"us-east5"},{"name":"Americas (Dallas) - us-south1","value":"us-south1"},{"name":"Americas (The Dalles) - us-west1","value":"us-west1"},{"name":"Americas (Los Angeles) - us-west2","value":"us-west2"},{"name":"Americas (Salt Lake City) - us-west3","value":"us-west3"},{"name":"Americas (Las Vegas) - us-west4","value":"us-west4"}],"default":"us-central1","description":"The region where the Google Cloud service is located. This applies only to specific nodes, like the Google Vertex Chat Model"},{"displayName":"Service Account Email","name":"email","type":"string","placeholder":"name@email.com","default":"","description":"The Google Service account similar to user-808@project.iam.gserviceaccount.com","required":true},{"displayName":"Private Key","name":"privateKey","type":"string","default":"","placeholder":"-----BEGIN PRIVATE KEY-----\nXIYEvQIBADANBg<...>0IhA7TMoGYPQc=\n-----END PRIVATE KEY-----\n","description":"Enter the private key located in the JSON file downloaded from Google Cloud Console","required":true,"typeOptions":{"password":true}},{"displayName":"Impersonate a User","name":"inpersonate","type":"boolean","default":false},{"displayName":"Email","name":"delegatedEmail","type":"string","default":"","displayOptions":{"show":{"inpersonate":[true]}},"description":"The email address of the user for which the application is requesting delegated access"},{"displayName":"Set up for use in HTTP Request node","name":"httpNode","type":"boolean","default":false},{"displayName":"When using the HTTP Request node, you must specify the scopes you want to send. In other nodes, they're added automatically","name":"httpWarning","type":"notice","default":"","displayOptions":{"show":{"httpNode":[true]}}},{"displayName":"Scope(s)","name":"scopes","type":"string","default":"","description":"You can find the scopes for services <a href=\"https://developers.google.com/identity/protocols/oauth2/scopes\" target=\"_blank\">here</a>","displayOptions":{"show":{"httpNode":[true]}}}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":["evaluationTrigger","evaluation","googleBigQuery","googleBooks","googleChat","googleDocs","googleDrive","googleDriveTrigger","googleFirebaseCloudFirestore","gmail","gmailTrigger","googleSheets","googleSlides","googleTranslate"],"authenticate":{}},
|
|
115
115
|
{"name":"googleBigQueryOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google BigQuery OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/drive"}],"supportedNodes":["googleBigQuery"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/BigQuery/googleBigQuery.svg"},
|
|
116
116
|
{"name":"googleBooksOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Books OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/books"}],"supportedNodes":["googleBooks"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Books/googlebooks.svg"},
|
|
117
117
|
{"name":"googleCalendarOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Calendar OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events"}],"supportedNodes":["googleCalendar","googleCalendarTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Calendar/googleCalendar.svg"},
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
{"name":"googleBusinessProfileOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Business Profile OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/business.manage"},{"displayName":"Make sure that you have fulfilled the prerequisites and requested access to Google Business Profile API. <a href=\"https://developers.google.com/my-business/content/prereqs\" target=\"_blank\">More info</a>. Also, make sure that you have enabled the following APIs & Services in the Google Cloud Console: Google My Business API, Google My Business Management API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":""}],"supportedNodes":["googleBusinessProfile","googleBusinessProfileTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/BusinessProfile/googleBusinessProfile.svg"},
|
|
127
127
|
{"name":"googleOAuth2Api","extends":["oAuth2Api"],"displayName":"Google OAuth2 API","documentationUrl":"google/oauth-generic","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://accounts.google.com/o/oauth2/v2/auth"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://oauth2.googleapis.com/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"access_type=offline&prompt=consent"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":[]},
|
|
128
128
|
{"name":"googlePerspectiveOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Perspective OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/userinfo.email"}],"supportedNodes":["googlePerspective"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Google/Perspective/googlePerspective.svg","dark":"icons/n8n-nodes-base/dist/nodes/Google/Perspective/googlePerspective.dark.svg"}},
|
|
129
|
-
{"name":"googleSheetsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["googleSheets"],"
|
|
129
|
+
{"name":"googleSheetsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["evaluationTrigger","evaluation","googleSheets"],"icon":"fa:check-double"},
|
|
130
130
|
{"name":"googleSheetsTriggerOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets Trigger OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you have enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["googleSheetsTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Sheet/googleSheets.svg"},
|
|
131
131
|
{"name":"googleSlidesOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Slides OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/presentations"}],"supportedNodes":["googleSlides"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Slides/googleslides.svg"},
|
|
132
132
|
{"name":"googleTasksOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Tasks OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/tasks"}],"supportedNodes":["googleTasks"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Task/googleTasks.svg"},
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
{"name":"invoiceNinjaApi","displayName":"Invoice Ninja API","documentationUrl":"invoiceNinja","properties":[{"displayName":"URL","name":"url","type":"string","default":"","hint":"Default URL for v4 is https://app.invoiceninja.com, for v5 it is https://invoicing.co"},{"displayName":"API Token","name":"apiToken","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Secret","name":"secret","type":"string","typeOptions":{"password":true},"default":"","hint":"This is optional, enter only if you did set a secret in your app and only if you are using v5"}],"test":{"request":{"baseURL":"={{$credentials?.url}}","url":"/api/v1/clients","method":"GET"}},"supportedNodes":["invoiceNinja","invoiceNinjaTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/InvoiceNinja/invoiceNinja.svg","authenticate":{}},
|
|
165
165
|
{"name":"iterableApi","displayName":"Iterable API","documentationUrl":"iterable","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Region","name":"region","type":"options","options":[{"name":"EDC","value":"https://api.eu.iterable.com"},{"name":"USDC","value":"https://api.iterable.com"}],"default":"https://api.iterable.com"}],"authenticate":{"type":"generic","properties":{"headers":{"Api_Key":"={{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"={{$credentials?.region}}","url":"/api/webhooks","method":"GET"}},"supportedNodes":["iterable"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Iterable/iterable.png"},
|
|
166
166
|
{"name":"jenkinsApi","displayName":"Jenkins API","documentationUrl":"jenkins","properties":[{"displayName":"Jenkins Username","name":"username","type":"string","default":""},{"displayName":"Personal API Token","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Jenkins Instance URL","name":"baseUrl","type":"string","default":""}],"supportedNodes":["jenkins"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Jenkins/jenkins.svg"},
|
|
167
|
-
{"name":"jinaAiApi","displayName":"Jina AI API","documentationUrl":"
|
|
167
|
+
{"name":"jinaAiApi","displayName":"Jina AI API","documentationUrl":"jinaai","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{ $credentials?.apiKey }}"}}},"test":{"request":{"method":"GET","url":"https://embeddings-dashboard-api.jina.ai/api/v1/api_key/fe_user","qs":{"api_key":"={{$credentials.apiKey}}"}}},"supportedNodes":["jinaAi"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/JinaAI/jinaAi.svg","dark":"icons/n8n-nodes-base/dist/nodes/JinaAI/jinaAi.dark.svg"}},
|
|
168
168
|
{"name":"jiraSoftwareCloudApi","displayName":"Jira SW Cloud API","documentationUrl":"jira","properties":[{"displayName":"Email","name":"email","type":"string","placeholder":"name@email.com","default":""},{"displayName":"API Token","name":"apiToken","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Domain","name":"domain","type":"string","default":"","placeholder":"https://example.atlassian.net"}],"authenticate":{"type":"generic","properties":{"auth":{"username":"={{$credentials.email}}","password":"={{$credentials.apiToken}}"}}},"test":{"request":{"baseURL":"={{$credentials?.domain}}","url":"/rest/api/2/project"}},"supportedNodes":["jira","jiraTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Jira/jira.svg"},
|
|
169
169
|
{"name":"jiraSoftwareServerApi","displayName":"Jira SW Server API","documentationUrl":"jira","properties":[{"displayName":"Email","name":"email","type":"string","placeholder":"name@email.com","default":""},{"displayName":"Password","name":"password","typeOptions":{"password":true},"type":"string","default":""},{"displayName":"Domain","name":"domain","type":"string","default":"","placeholder":"https://example.com"}],"authenticate":{"type":"generic","properties":{"auth":{"username":"={{$credentials.email}}","password":"={{$credentials.password}}"}}},"test":{"request":{"baseURL":"={{$credentials?.domain}}","url":"/rest/api/2/project"}},"supportedNodes":["jira","jiraTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Jira/jira.svg"},
|
|
170
170
|
{"name":"jiraSoftwareServerPatApi","displayName":"Jira SW Server (PAT) API","documentationUrl":"jira","properties":[{"displayName":"Personal Access Token","name":"personalAccessToken","typeOptions":{"password":true},"type":"string","default":""},{"displayName":"Domain","name":"domain","type":"string","default":"","placeholder":"https://example.com"}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.personalAccessToken}}"}}},"test":{"request":{"baseURL":"={{$credentials?.domain}}","url":"/rest/api/2/project"}},"supportedNodes":["jira","jiraTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Jira/jira.svg"},
|
|
@@ -212,9 +212,9 @@
|
|
|
212
212
|
{"name":"microsoftOAuth2Api","extends":["oAuth2Api"],"displayName":"Microsoft OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"string","default":"https://login.microsoftonline.com/common/oauth2/v2.0/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"string","default":"https://login.microsoftonline.com/common/oauth2/v2.0/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"response_mode=query"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Microsoft.svg","supportedNodes":[]},
|
|
213
213
|
{"name":"microsoftOneDriveOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Drive OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Files.ReadWrite.All"}],"supportedNodes":["microsoftOneDrive","microsoftOneDriveTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/OneDrive/oneDrive.svg"},
|
|
214
214
|
{"name":"microsoftOutlookOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Outlook OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Contacts.Read Contacts.ReadWrite Calendars.Read Calendars.Read.Shared Calendars.ReadWrite Mail.ReadWrite Mail.ReadWrite.Shared Mail.Send Mail.Send.Shared MailboxSettings.Read"},{"displayName":"Use Shared Mailbox","name":"useShared","type":"boolean","default":false},{"displayName":"User Principal Name","name":"userPrincipalName","description":"Target user's UPN or ID","type":"string","default":"","displayOptions":{"show":{"useShared":[true]}}}],"supportedNodes":["microsoftOutlook","microsoftOutlookTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Outlook/outlook.svg"},
|
|
215
|
-
{"name":"microsoftSharePointOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft SharePoint OAuth2 API","documentationUrl":"microsoft","
|
|
215
|
+
{"name":"microsoftSharePointOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft SharePoint OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"=openid offline_access https://{{$self.subdomain}}.sharepoint.com/.default"},{"displayName":"Subdomain","name":"subdomain","type":"string","default":"","hint":"You can extract the subdomain from the URL. For example, in the URL \"https://tenant123.sharepoint.com\", the subdomain is \"tenant123\"."}],"supportedNodes":["microsoftSharePoint"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/SharePoint/microsoftSharePoint.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/SharePoint/microsoftSharePoint.svg"}},
|
|
216
216
|
{"name":"microsoftSql","displayName":"Microsoft SQL","documentationUrl":"microsoftSql","properties":[{"displayName":"Server","name":"server","type":"string","default":"localhost"},{"displayName":"Database","name":"database","type":"string","default":"master"},{"displayName":"User","name":"user","type":"string","default":"sa"},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Port","name":"port","type":"number","default":1433},{"displayName":"Domain","name":"domain","type":"string","default":""},{"displayName":"TLS","name":"tls","type":"boolean","default":true},{"displayName":"Ignore SSL Issues (Insecure)","name":"allowUnauthorizedCerts","type":"boolean","default":false,"description":"Whether to connect even if SSL certificate validation is not possible"},{"displayName":"Connect Timeout","name":"connectTimeout","type":"number","default":15000,"description":"Connection timeout in ms"},{"displayName":"Request Timeout","name":"requestTimeout","type":"number","default":15000,"description":"Request timeout in ms"},{"displayName":"TDS Version","name":"tdsVersion","type":"options","options":[{"name":"7_4 (SQL Server 2012 ~ 2019)","value":"7_4"},{"name":"7_3_B (SQL Server 2008R2)","value":"7_3_B"},{"name":"7_3_A (SQL Server 2008)","value":"7_3_A"},{"name":"7_2 (SQL Server 2005)","value":"7_2"},{"name":"7_1 (SQL Server 2000)","value":"7_1"}],"default":"7_4","description":"The version of TDS to use. If server doesn't support specified version, negotiated version is used instead."}],"supportedNodes":["microsoftSql"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Sql/mssql.svg"},
|
|
217
|
-
{"name":"microsoftTeamsOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Teams OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access User.ReadWrite.All Group.ReadWrite.All Chat.ReadWrite"}],"supportedNodes":["microsoftTeams"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Teams/teams.svg"},
|
|
217
|
+
{"name":"microsoftTeamsOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Teams OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access User.ReadWrite.All Group.ReadWrite.All Chat.ReadWrite"},{"displayName":"\n Microsoft Teams Trigger requires the following permissions:\n <br><code>ChannelMessage.Read.All</code>\n <br><code>Chat.Read.All</code>\n <br><code>Team.ReadBasic.All</code>\n <br><code>Subscription.ReadWrite.All</code>\n <br>Configure these permissions in <a href=\"https://portal.azure.com\">Microsoft Entra</a>\n ","name":"notice","type":"notice","default":""}],"supportedNodes":["microsoftTeams","microsoftTeamsTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Teams/teams.svg"},
|
|
218
218
|
{"name":"microsoftToDoOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft To Do OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Tasks.ReadWrite"}],"supportedNodes":["microsoftToDo"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/ToDo/todo.svg"},
|
|
219
219
|
{"name":"mindeeInvoiceApi","displayName":"Mindee Invoice API","documentationUrl":"mindee","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["mindee"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Mindee/mindee.svg","authenticate":{}},
|
|
220
220
|
{"name":"mindeeReceiptApi","displayName":"Mindee Receipt API","documentationUrl":"mindee","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["mindee"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Mindee/mindee.svg","authenticate":{}},
|
|
@@ -306,7 +306,7 @@
|
|
|
306
306
|
{"name":"slackOAuth2Api","extends":["oAuth2Api"],"displayName":"Slack OAuth2 API","documentationUrl":"slack","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://slack.com/oauth/v2/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://slack.com/api/oauth.v2.access"},{"displayName":"Scope","name":"scope","type":"hidden","default":"chat:write"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"user_scope=channels:read channels:write chat:write files:read files:write groups:read im:read mpim:read reactions:read reactions:write stars:read stars:write usergroups:write usergroups:read users.profile:read users.profile:write users:read"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"},{"displayName":"If you get an Invalid Scopes error, make sure you add the correct one <a target=\"_blank\" href=\"https://docs.n8n.io/integrations/builtin/credentials/slack/#using-oauth\">here</a> to your Slack integration","name":"notice","type":"notice","default":""}],"supportedNodes":["slack"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Slack/slack.svg"},
|
|
307
307
|
{"name":"sms77Api","displayName":"seven API","documentationUrl":"sms77","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"X-Api-Key":"={{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://gateway.seven.io/api","url":"/hooks","qs":{"action":"read"}},"rules":[{"type":"responseSuccessBody","properties":{"key":"success","message":"Invalid API Key"}}]},"supportedNodes":["sms77"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Sms77/seven.svg"},
|
|
308
308
|
{"name":"smtp","displayName":"SMTP","documentationUrl":"sendemail","properties":[{"displayName":"User","name":"user","type":"string","default":""},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Host","name":"host","type":"string","default":""},{"displayName":"Port","name":"port","type":"number","default":465},{"displayName":"SSL/TLS","name":"secure","type":"boolean","default":true},{"displayName":"Disable STARTTLS","name":"disableStartTls","type":"boolean","default":false,"displayOptions":{"show":{"secure":[false]}}},{"displayName":"Client Host Name","name":"hostName","type":"string","default":"","placeholder":"","description":"The hostname of the client, used for identifying to the server"}],"supportedNodes":["emailSend"],"icon":"fa:envelope"},
|
|
309
|
-
{"name":"snowflake","displayName":"Snowflake","documentationUrl":"snowflake","properties":[{"displayName":"Account","name":"account","type":"string","default":"","description":"Enter the name of your Snowflake account"},{"displayName":"Database","name":"database","type":"string","default":"","description":"Specify the database you want to use after creating the connection"},{"displayName":"Warehouse","name":"warehouse","type":"string","default":"","description":"The default virtual warehouse to use for the session after connecting. Used for performing queries, loading data, etc."},{"displayName":"Username","name":"username","type":"string","default":""},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Schema","name":"schema","type":"string","default":"","description":"Enter the schema you want to use after creating the connection"},{"displayName":"Role","name":"role","type":"string","default":"","description":"Enter the security role you want to use after creating the connection"},{"displayName":"Client Session Keep Alive","name":"clientSessionKeepAlive","type":"boolean","default":false,"description":"Whether to keep alive the client session. By default, client connections typically time out approximately 3-4 hours after the most recent query was executed. If the parameter clientSessionKeepAlive is set to true, the client’s connection to the server will be kept alive indefinitely, even if no queries are executed."}],"supportedNodes":["snowflake"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Snowflake/snowflake.svg"},
|
|
309
|
+
{"name":"snowflake","displayName":"Snowflake","documentationUrl":"snowflake","properties":[{"displayName":"Account","name":"account","type":"string","default":"","description":"Enter the name of your Snowflake account"},{"displayName":"Database","name":"database","type":"string","default":"","description":"Specify the database you want to use after creating the connection"},{"displayName":"Warehouse","name":"warehouse","type":"string","default":"","description":"The default virtual warehouse to use for the session after connecting. Used for performing queries, loading data, etc."},{"displayName":"Authentication","name":"authentication","type":"options","options":[{"name":"Password","value":"password"},{"name":"Key-Pair","value":"keyPair"}],"default":"password","description":"The way to authenticate with Snowflake"},{"displayName":"Username","name":"username","type":"string","default":"","displayOptions":{"show":{"authentication":["password"]}}},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":"","displayOptions":{"show":{"authentication":["password"]}}},{"displayName":"Private Key","name":"privateKey","type":"string","typeOptions":{"password":true,"rows":4},"default":"","required":true,"displayOptions":{"show":{"authentication":["keyPair"]}},"description":"Private PEM key for Key-pair authentication with Snowflake"},{"displayName":"Schema","name":"schema","type":"string","default":"","description":"Enter the schema you want to use after creating the connection"},{"displayName":"Role","name":"role","type":"string","default":"","description":"Enter the security role you want to use after creating the connection"},{"displayName":"Client Session Keep Alive","name":"clientSessionKeepAlive","type":"boolean","default":false,"description":"Whether to keep alive the client session. By default, client connections typically time out approximately 3-4 hours after the most recent query was executed. If the parameter clientSessionKeepAlive is set to true, the client’s connection to the server will be kept alive indefinitely, even if no queries are executed."}],"supportedNodes":["snowflake"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Snowflake/snowflake.svg"},
|
|
310
310
|
{"name":"solarWindsIpamApi","displayName":"SolarWinds IPAM","documentationUrl":"solarwindsipam","httpRequestNode":{"name":"SolarWinds IPAM","docsUrl":"https://www.solarwinds.com/ip-address-manager","apiBaseUrlPlaceholder":"https://your-ipam-server"},"properties":[{"displayName":"Base URL","name":"url","required":true,"type":"string","default":"","placeholder":"https://your-ipam-server","description":"The base URL of your SolarWinds IPAM server."},{"displayName":"Username","name":"username","required":true,"type":"string","default":"","description":"The username for SolarWinds IPAM API."},{"displayName":"Password","name":"password","required":true,"type":"string","typeOptions":{"password":true},"default":"","description":"The password for SolarWinds IPAM API."}],"authenticate":{"type":"generic","properties":{"auth":{"username":"={{$credentials.username}}","password":"={{$credentials.password}}"}}},"test":{"request":{"baseURL":"={{$credentials.url}}","url":"/SolarWinds/InformationService/v3/Json/Query","method":"GET","qs":{"query":"SELECT TOP 1 AccountID FROM IPAM.AccountRoles"},"skipSslCertificateValidation":true},"rules":[{"type":"responseCode","properties":{"value":403,"message":"Connection failed: Invalid credentials or unreachable server"}}]},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsIpam.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsIpam.svg"},"supportedNodes":[]},
|
|
311
311
|
{"name":"solarWindsObservabilityApi","displayName":"SolarWinds Observability","documentationUrl":"solarwindsobservability","httpRequestNode":{"name":"SolarWinds Observability","docsUrl":"https://documentation.solarwinds.com/en/success_center/observability/content/api/api-swagger.htm","apiBaseUrlPlaceholder":"https://api.xx-yy.cloud.solarwinds.com/"},"properties":[{"displayName":"URL","name":"url","required":true,"type":"string","default":""},{"displayName":"API Token","name":"apiToken","required":true,"type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiToken}}","Content-Type":"application/json-rpc"}}},"test":{"request":{"baseURL":"={{$credentials.url}}","url":"/v1/logs","method":"GET"},"rules":[{"type":"responseSuccessBody","properties":{"key":"error","value":"invalid_auth","message":"Invalid access token"}}]},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsObservability.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsObservability.svg"},"supportedNodes":[]},
|
|
312
312
|
{"name":"splunkApi","displayName":"Splunk API","documentationUrl":"splunk","properties":[{"displayName":"Auth Token","name":"authToken","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Base URL","name":"baseUrl","type":"string","description":"Protocol, domain and port","placeholder":"e.g. https://localhost:8089","default":""},{"displayName":"Allow Self-Signed Certificates","name":"allowUnauthorizedCerts","type":"boolean","description":"Whether to connect even if SSL certificate validation is not possible","default":false}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials?.authToken}}"}}},"test":{"request":{"url":"={{$credentials.baseUrl}}/services/alerts/fired_alerts","method":"GET","skipSslCertificateValidation":"={{$credentials?.allowUnauthorizedCerts}}"}},"supportedNodes":["splunk"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Splunk/splunk.svg"},
|