mirror of
https://github.com/n8n-io/n8n-nodes-starter.git
synced 2025-10-29 06:22:24 -05:00
repository cleaned
This commit is contained in:
parent
392231e695
commit
1f0d4727f0
11 changed files with 2 additions and 4553 deletions
|
|
@ -1,76 +0,0 @@
|
||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
|
||||||
contributors and maintainers pledge to making participation in our project and
|
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
|
||||||
level of experience, education, socio-economic status, nationality, personal
|
|
||||||
appearance, race, religion, or sexual identity and orientation.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
|
||||||
include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
||||||
advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic
|
|
||||||
address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
|
||||||
behavior and are expected to take appropriate and fair corrective action in
|
|
||||||
response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
|
||||||
when an individual is representing the project or its community. Examples of
|
|
||||||
representing a project or community include using an official project e-mail
|
|
||||||
address, posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event. Representation of a project may be
|
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting the project team at jan@n8n.io. All
|
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
|
||||||
members of the project's leadership.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
||||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see
|
|
||||||
https://www.contributor-covenant.org/faq
|
|
||||||
80
README.md
80
README.md
|
|
@ -1,80 +0,0 @@
|
||||||

|
|
||||||
|
|
||||||
# n8n-nodes-starter
|
|
||||||
|
|
||||||
This repo contains example nodes to help you get started building your own custom integrations for [n8n](https://n8n.io). It includes the node linter and other dependencies.
|
|
||||||
|
|
||||||
To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).
|
|
||||||
|
|
||||||
If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
You need the following installed on your development machine:
|
|
||||||
|
|
||||||
* Docker and Docker Compose
|
|
||||||
* NodeJS, npm and pnpm (Execture npm install -g pnpm@latest-10 after installing npm)
|
|
||||||
|
|
||||||
Once you have cloned the repository:
|
|
||||||
|
|
||||||
* Execute:
|
|
||||||
```
|
|
||||||
npm i
|
|
||||||
```
|
|
||||||
|
|
||||||
To run the local n8n instance:
|
|
||||||
|
|
||||||
* Execute:
|
|
||||||
```
|
|
||||||
docker compose up -d
|
|
||||||
```
|
|
||||||
Now, n8n will run on http://localhost:5678.
|
|
||||||
|
|
||||||
When changes are made to the custom node code and you want to test it on the local instance:
|
|
||||||
|
|
||||||
* There is a script file called deploy-node.sh. Once executed, it will build the custom node code and deploy the Docker container. This file requires a few changes depending on the name that Docker gives to the container and the volumes:
|
|
||||||
|
|
||||||
* On line 24 of the script, you will see this line:
|
|
||||||
```
|
|
||||||
TARGET_DIR="/var/lib/docker/volumes/n8n-self-hosted_n8n_data/_data/custom/$PACKAGE_NAME"
|
|
||||||
```
|
|
||||||
|
|
||||||
* Depending on the container volume name, "n8n-self-hosted_n8n_data" needs to be changed. To check the volume's name, execute:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker volume ls
|
|
||||||
```
|
|
||||||
|
|
||||||
* On lines 56 and 59, "n8n-self-hosted-n8n-1" must be changed to match the name of the container for the n8n instance.
|
|
||||||
|
|
||||||
* Once these changes are made, execute the script:
|
|
||||||
```
|
|
||||||
./deploy-node.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using this starter
|
|
||||||
|
|
||||||
These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).
|
|
||||||
|
|
||||||
1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
|
|
||||||
2. Clone your new repo:
|
|
||||||
```
|
|
||||||
git clone https://github.com/<your organization>/<your-repo-name>.git
|
|
||||||
```
|
|
||||||
3. Run `npm i` to install dependencies.
|
|
||||||
4. Open the project in your editor.
|
|
||||||
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
|
|
||||||
6. Update the `package.json` to match your details.
|
|
||||||
7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
|
|
||||||
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
|
|
||||||
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
|
|
||||||
10. Update the LICENSE file to use your details.
|
|
||||||
11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.
|
|
||||||
|
|
||||||
## More information
|
|
||||||
|
|
||||||
Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
# n8n-nodes-_node-name_
|
|
||||||
|
|
||||||
This is an n8n community node. It lets you use _app/service name_ in your n8n workflows.
|
|
||||||
|
|
||||||
_App/service name_ is _one or two sentences describing the service this node integrates with_.
|
|
||||||
|
|
||||||
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
||||||
|
|
||||||
[Installation](#installation)
|
|
||||||
[Operations](#operations)
|
|
||||||
[Credentials](#credentials) <!-- delete if no auth needed -->
|
|
||||||
[Compatibility](#compatibility)
|
|
||||||
[Usage](#usage) <!-- delete if not using this section -->
|
|
||||||
[Resources](#resources)
|
|
||||||
[Version history](#version-history) <!-- delete if not using this section -->
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
||||||
|
|
||||||
## Operations
|
|
||||||
|
|
||||||
_List the operations supported by your node._
|
|
||||||
|
|
||||||
## Credentials
|
|
||||||
|
|
||||||
_If users need to authenticate with the app/service, provide details here. You should include prerequisites (such as signing up with the service), available authentication methods, and how to set them up._
|
|
||||||
|
|
||||||
## Compatibility
|
|
||||||
|
|
||||||
_State the minimum n8n version, as well as which versions you test against. You can also include any known version incompatibility issues._
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
_This is an optional section. Use it to help users with any difficult or confusing aspects of the node._
|
|
||||||
|
|
||||||
_By the time users are looking for community nodes, they probably already know n8n basics. But if you expect new users, you can link to the [Try it out](https://docs.n8n.io/try-it-out/) documentation to help them get started._
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
* [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
||||||
* _Link to app/service documentation._
|
|
||||||
|
|
||||||
## Version history
|
|
||||||
|
|
||||||
_This is another optional section. If your node has multiple versions, include a short description of available versions and what changed, as well as any compatibility impact._
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
import {
|
|
||||||
IAuthenticateGeneric,
|
|
||||||
ICredentialTestRequest,
|
|
||||||
ICredentialType,
|
|
||||||
INodeProperties,
|
|
||||||
} from 'n8n-workflow';
|
|
||||||
|
|
||||||
export class HttpBinApi implements ICredentialType {
|
|
||||||
name = 'httpbinApi';
|
|
||||||
displayName = 'HttpBin API';
|
|
||||||
documentationUrl = 'https://your-docs-url';
|
|
||||||
properties: INodeProperties[] = [
|
|
||||||
{
|
|
||||||
displayName: 'Token',
|
|
||||||
name: 'token',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
typeOptions: {
|
|
||||||
password: true,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Domain',
|
|
||||||
name: 'domain',
|
|
||||||
type: 'string',
|
|
||||||
default: 'https://httpbin.org',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// This allows the credential to be used by other parts of n8n
|
|
||||||
// stating how this credential is injected as part of the request
|
|
||||||
// An example is the Http Request node that can make generic calls
|
|
||||||
// reusing this credential
|
|
||||||
authenticate: IAuthenticateGeneric = {
|
|
||||||
type: 'generic',
|
|
||||||
properties: {
|
|
||||||
headers: {
|
|
||||||
Authorization: '={{"Bearer " + $credentials.token}}',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// The block below tells how this credential can be tested
|
|
||||||
test: ICredentialTestRequest = {
|
|
||||||
request: {
|
|
||||||
baseURL: '={{$credentials?.domain}}',
|
|
||||||
url: '/bearer',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
6
index.js
6
index.js
|
|
@ -1,11 +1,9 @@
|
||||||
const { S4DSAuth } = require('./dist/nodes/S4DSAuth/S4DSAuth.node.js');
|
const { S4DSAuth } = require('./dist/nodes/S4DSAuth/S4DSAuth.node.js');
|
||||||
const { S4DSExample } = require('./dist/nodes/S4DSExample/S4DSExample.node.js');
|
const { S4DSExample } = require('./dist/nodes/S4DSExample/S4DSExample.node.js');
|
||||||
const { HttpBin } = require('./dist/nodes/HttpBin/HttpBin.node.js');
|
|
||||||
|
|
||||||
const { S4DSApi } = require('./dist/credentials/S4DSApi.credentials.js');
|
const { S4DSApi } = require('./dist/credentials/S4DSApi.credentials.js');
|
||||||
const { HttpBinApi } = require('./dist/credentials/HttpBinApi.credentials.js');
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
nodes: [S4DSAuth, S4DSExample, HttpBin],
|
nodes: [S4DSAuth, S4DSExample],
|
||||||
credentials: [S4DSApi, HttpBinApi],
|
credentials: [S4DSApi],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
"node": "n8n-nodes-base.httpbin",
|
|
||||||
"nodeVersion": "1.0",
|
|
||||||
"codexVersion": "1.0",
|
|
||||||
"categories": ["Development", "Developer Tools"],
|
|
||||||
"resources": {
|
|
||||||
"credentialDocumentation": [
|
|
||||||
{
|
|
||||||
"url": "http://httpbin.org/#/Auth/get_bearer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"primaryDocumentation": [
|
|
||||||
{
|
|
||||||
"url": "http://httpbin.org/"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
import { INodeType, INodeTypeDescription, NodeConnectionType } from 'n8n-workflow';
|
|
||||||
import { httpVerbFields, httpVerbOperations } from './HttpVerbDescription';
|
|
||||||
|
|
||||||
export class HttpBin implements INodeType {
|
|
||||||
description: INodeTypeDescription = {
|
|
||||||
displayName: 'HttpBin',
|
|
||||||
name: 'httpBin',
|
|
||||||
icon: { light: 'file:httpbin.svg', dark: 'file:httpbin.svg' },
|
|
||||||
group: ['transform'],
|
|
||||||
version: 1,
|
|
||||||
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
||||||
description: 'Interact with HttpBin API',
|
|
||||||
defaults: {
|
|
||||||
name: 'HttpBin',
|
|
||||||
},
|
|
||||||
inputs: [NodeConnectionType.Main],
|
|
||||||
outputs: [NodeConnectionType.Main],
|
|
||||||
usableAsTool: true,
|
|
||||||
credentials: [
|
|
||||||
{
|
|
||||||
name: 'httpbinApi',
|
|
||||||
required: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
requestDefaults: {
|
|
||||||
baseURL: 'https://httpbin.org',
|
|
||||||
url: '',
|
|
||||||
headers: {
|
|
||||||
Accept: 'application/json',
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
* In the properties array we have two mandatory options objects required
|
|
||||||
*
|
|
||||||
* [Resource & Operation]
|
|
||||||
*
|
|
||||||
* https://docs.n8n.io/integrations/creating-nodes/code/create-first-node/#resources-and-operations
|
|
||||||
*
|
|
||||||
* In our example, the operations are separated into their own file (HTTPVerbDescription.ts)
|
|
||||||
* to keep this class easy to read.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
properties: [
|
|
||||||
{
|
|
||||||
displayName: 'Resource',
|
|
||||||
name: 'resource',
|
|
||||||
type: 'options',
|
|
||||||
noDataExpression: true,
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'HTTP Verb',
|
|
||||||
value: 'httpVerb',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
default: 'httpVerb',
|
|
||||||
},
|
|
||||||
|
|
||||||
...httpVerbOperations,
|
|
||||||
...httpVerbFields,
|
|
||||||
],
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,250 +0,0 @@
|
||||||
import { INodeProperties } from 'n8n-workflow';
|
|
||||||
|
|
||||||
// When the resource `httpVerb` is selected, this `operation` parameter will be shown.
|
|
||||||
export const httpVerbOperations: INodeProperties[] = [
|
|
||||||
{
|
|
||||||
displayName: 'Operation',
|
|
||||||
name: 'operation',
|
|
||||||
type: 'options',
|
|
||||||
noDataExpression: true,
|
|
||||||
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'GET',
|
|
||||||
value: 'get',
|
|
||||||
description: 'Perform a GET request',
|
|
||||||
action: 'Perform a GET request',
|
|
||||||
routing: {
|
|
||||||
request: {
|
|
||||||
method: 'GET',
|
|
||||||
url: '/get',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'DELETE',
|
|
||||||
value: 'delete',
|
|
||||||
description: 'Perform a DELETE request',
|
|
||||||
action: 'Perform a DELETE request',
|
|
||||||
routing: {
|
|
||||||
request: {
|
|
||||||
method: 'DELETE',
|
|
||||||
url: '/delete',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
default: 'get',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// Here we define what to show when the `get` operation is selected.
|
|
||||||
// We do that by adding `operation: ["get"]` to `displayOptions.show`
|
|
||||||
const getOperation: INodeProperties[] = [
|
|
||||||
{
|
|
||||||
displayName: 'Type of Data',
|
|
||||||
name: 'typeofData',
|
|
||||||
default: 'queryParameter',
|
|
||||||
description: 'Select type of data to send [Query Parameters]',
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
operation: ['get'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
type: 'options',
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'Query',
|
|
||||||
value: 'queryParameter',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Query Parameters',
|
|
||||||
name: 'arguments',
|
|
||||||
default: {},
|
|
||||||
description: "The request's query parameters",
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
operation: ['get'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'keyvalue',
|
|
||||||
displayName: 'Key:Value',
|
|
||||||
values: [
|
|
||||||
{
|
|
||||||
displayName: 'Key',
|
|
||||||
name: 'key',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
required: true,
|
|
||||||
description: 'Key of query parameter',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Value',
|
|
||||||
name: 'value',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
routing: {
|
|
||||||
send: {
|
|
||||||
property: '={{$parent.key}}',
|
|
||||||
type: 'query',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
description: 'Value of query parameter',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
type: 'fixedCollection',
|
|
||||||
typeOptions: {
|
|
||||||
multipleValues: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// Here we define what to show when the DELETE Operation is selected.
|
|
||||||
// We do that by adding `operation: ["delete"]` to `displayOptions.show`
|
|
||||||
const deleteOperation: INodeProperties[] = [
|
|
||||||
{
|
|
||||||
displayName: 'Type of Data',
|
|
||||||
name: 'typeofData',
|
|
||||||
default: 'queryParameter',
|
|
||||||
description: 'Select type of data to send [Query Parameter Arguments, JSON-Body]',
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
operation: ['delete'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'Query',
|
|
||||||
value: 'queryParameter',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'JSON',
|
|
||||||
value: 'jsonData',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
required: true,
|
|
||||||
type: 'options',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Query Parameters',
|
|
||||||
name: 'arguments',
|
|
||||||
default: {},
|
|
||||||
description: "The request's query parameters",
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
operation: ['delete'],
|
|
||||||
typeofData: ['queryParameter'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'keyvalue',
|
|
||||||
displayName: 'Key:Value',
|
|
||||||
values: [
|
|
||||||
{
|
|
||||||
displayName: 'Key',
|
|
||||||
name: 'key',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
required: true,
|
|
||||||
description: 'Key of query parameter',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Value',
|
|
||||||
name: 'value',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
routing: {
|
|
||||||
send: {
|
|
||||||
property: '={{$parent.key}}',
|
|
||||||
type: 'query',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
description: 'Value of query parameter',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
type: 'fixedCollection',
|
|
||||||
typeOptions: {
|
|
||||||
multipleValues: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'JSON Object',
|
|
||||||
name: 'arguments',
|
|
||||||
default: {},
|
|
||||||
description: "The request's JSON properties",
|
|
||||||
displayOptions: {
|
|
||||||
show: {
|
|
||||||
resource: ['httpVerb'],
|
|
||||||
operation: ['delete'],
|
|
||||||
typeofData: ['jsonData'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
name: 'keyvalue',
|
|
||||||
displayName: 'Key:Value',
|
|
||||||
values: [
|
|
||||||
{
|
|
||||||
displayName: 'Key',
|
|
||||||
name: 'key',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
required: true,
|
|
||||||
description: 'Key of JSON property',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
displayName: 'Value',
|
|
||||||
name: 'value',
|
|
||||||
type: 'string',
|
|
||||||
default: '',
|
|
||||||
routing: {
|
|
||||||
send: {
|
|
||||||
property: '={{$parent.key}}',
|
|
||||||
type: 'body',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
description: 'Value of JSON property',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
type: 'fixedCollection',
|
|
||||||
typeOptions: {
|
|
||||||
multipleValues: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
export const httpVerbFields: INodeProperties[] = [
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
/* httpVerb:get */
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
...getOperation,
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
/* httpVerb:delete */
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
...deleteOperation,
|
|
||||||
];
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve"> <image id="image0" width="32" height="32" x="0" y="0"
|
|
||||||
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJN
|
|
||||||
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElN
|
|
||||||
RQfmBg4UAC/TqOZZAAACA0lEQVRIx5XVv09TURwF8M+jFHDSyRkGFhPAEfyRdDHi5uriXyDoYgKT
|
|
||||||
MJDWzUT/Ahf/AiOEpajEgCESmpiYmDCxGowDTYE+h76+vte+15Zzk753b7733HNO772PbEw7ECba
|
|
||||||
genswtEcgl0/PHARV72066YrIDSZ6k8KBym4741r0XsB284TdUX8chn1zrzwJUmw4KFXPqjFE0Y0
|
|
||||||
u5YKEhpmfLZuy7f2wLKGI8WhDRYdaVhurdTCidmU5P44N+skaaGQH1IfFFrOYMotT932zNgQExve
|
|
||||||
OfTeT8dtBceO3TFlOyopY7UPxV+/fWyn3Y0xrFhJjZWFXhs12pKdRO9ObGSuyB8Xbd9JjMjDc6HQ
|
|
||||||
IcrKqAiVe8vyCEJPrGBWxZYqqtZt9RbmHabAvAAVdVUlJTvWshbMt0AYn40OmlchSKOePTyYIMQn
|
|
||||||
rb8yI8TsDCrRs4od7Jv3KOoPGWKboBqp2LN3FQvdO7EPshSsRSTXrSop2cSiiUGkG/bj2JqaQiHW
|
|
||||||
4nv50mFcu28j30KQarAnEPhuzvwwGYQ975vx7+JwGXTjTIAzoYlhCArR5d0KkfauqJAVY6+FG5hD
|
|
||||||
OS6veqyCuSiTAQT/jKmlQtyxIBCoZV28HQvN6LuQvJFC4xjvibfYOZUdUXd9taTWJbOubiIVXmjG
|
|
||||||
W/fs9qpZcpr6pOe1U0udSf8BR7ef4yxyOskAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDYtMTRU
|
|
||||||
MTc6MDA6NDcrMDM6MDBfo1sRAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA2LTE0VDE3OjAwOjQ3
|
|
||||||
KzAzOjAwLv7jrQAAAABJRU5ErkJggg==" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -33,11 +33,9 @@
|
||||||
"n8n": {
|
"n8n": {
|
||||||
"n8nNodesApiVersion": 1,
|
"n8nNodesApiVersion": 1,
|
||||||
"credentials": [
|
"credentials": [
|
||||||
"dist/credentials/HttpBinApi.credentials.js",
|
|
||||||
"dist/credentials/S4DSApi.credentials.js"
|
"dist/credentials/S4DSApi.credentials.js"
|
||||||
],
|
],
|
||||||
"nodes": [
|
"nodes": [
|
||||||
"dist/nodes/HttpBin/HttpBin.node.js",
|
|
||||||
"dist/nodes/S4DSAuth/S4DSAuth.node.js",
|
"dist/nodes/S4DSAuth/S4DSAuth.node.js",
|
||||||
"dist/nodes/S4DSExample/S4DSExample.node.js"
|
"dist/nodes/S4DSExample/S4DSExample.node.js"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue