mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 03:12:15 +00:00
81 lines
2.0 KiB
TypeScript
81 lines
2.0 KiB
TypeScript
import { updateDisplayOptions, type INodeProperties } from 'n8n-workflow';
|
|
|
|
import { validateQueryParameters } from '../../helpers/utils';
|
|
import { containerResourceLocator } from '../common';
|
|
|
|
const properties: INodeProperties[] = [
|
|
{ ...containerResourceLocator, description: 'Select the container you want to use' },
|
|
{
|
|
displayName: 'Query',
|
|
name: 'query',
|
|
default: '',
|
|
description:
|
|
"The SQL query to execute. Use $1, $2, $3, etc., to reference the 'Query Parameters' set in the options below.",
|
|
hint: 'Consider using query parameters to prevent SQL injection attacks. Add them in the options below.',
|
|
noDataExpression: true,
|
|
placeholder: 'e.g. SELECT id, name FROM c WHERE c.name = $1',
|
|
required: true,
|
|
routing: {
|
|
send: {
|
|
type: 'body',
|
|
property: 'query',
|
|
value: "={{ $value.replace(/\\$(\\d+)/g, '@Param$1') }}",
|
|
},
|
|
},
|
|
type: 'string',
|
|
typeOptions: {
|
|
editor: 'sqlEditor',
|
|
sqlDialect: 'StandardSQL',
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Simplify',
|
|
name: 'simple',
|
|
default: true,
|
|
description: 'Whether to return a simplified version of the response instead of the raw data',
|
|
type: 'boolean',
|
|
},
|
|
{
|
|
displayName: 'Options',
|
|
name: 'options',
|
|
default: {},
|
|
options: [
|
|
{
|
|
displayName: 'Query Options',
|
|
name: 'queryOptions',
|
|
values: [
|
|
{
|
|
displayName: 'Query Parameters',
|
|
name: 'queryParameters',
|
|
default: '',
|
|
description:
|
|
'Comma-separated list of values used as query parameters. Use $1, $2, $3, etc., in your query.',
|
|
hint: 'Reference them in your query as $1, $2, $3…',
|
|
placeholder: 'e.g. value1,value2,value3',
|
|
routing: {
|
|
send: {
|
|
preSend: [validateQueryParameters],
|
|
},
|
|
},
|
|
type: 'string',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
placeholder: 'Add options',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
},
|
|
];
|
|
|
|
const displayOptions = {
|
|
show: {
|
|
resource: ['item'],
|
|
operation: ['query'],
|
|
},
|
|
};
|
|
|
|
export const description = updateDisplayOptions(displayOptions, properties);
|