In a sensitive string-type parameter, typeOptions.password
must be set to true
to obscure the input. A node parameter name is sensitive if it contains the strings: secret
,password
,token
,apiKey
. See exceptions in source.
📋 This rule is part of the plugin:n8n-nodes-base/nodes
config.
🔧 Run ESLint with --fix
option to autofix the issue flagged by this rule.
❌ Example of incorrect code:
const test = {
displayName: "Some Display Name",
name: "secret",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "password",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "token",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "apiKey",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "appPassword",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "clientSecret",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "accessToken",
type: "string",
default: "",
};
const test = {
displayName: "Some Display Name",
name: "secret",
type: "string",
typeOptions: { someOption: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "password",
type: "string",
typeOptions: { someOption: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "token",
type: "string",
typeOptions: { someOption: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "apiKey",
type: "string",
typeOptions: { someOption: true },
default: "",
};
✅ Example of correct code:
const test = {
displayName: "Some Display Name",
name: "secret",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "password",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "token",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "apiKey",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "appPassword",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "clientSecret",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "accessToken",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "maxTokens",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "password_needs_reset",
type: "string",
typeOptions: { password: true },
default: "",
};
const test = {
displayName: "Some Display Name",
name: "accessToken",
type: "hidden",
default: "",
};
const test = {
displayName: "Is Password Protected",
name: "isPasswordProtected",
type: "boolean",
default: "",
};