Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
This report summarizes scanner evidence for n8n-io/n8n, a TypeScript project with 209,165 GitHub stars. SynthScan examined 5,807,555 lines of code across 29794 source files, recording 7635 pattern matches distributed across 26 syntactic categories. The legacy adjusted pattern signal is 2.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 5274 finding(s).
Are imports declared and package/API names verified? 1335 finding(s).
Are wrappers, guards, and repeated structures necessary? 5533 finding(s).
Which changes need focused human review? 7635 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 7635 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 181 | def write_claude_interactive_config(out, home, tools): | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 1064 | def render_checks_by_criteria(checks, criteria): | CODE |
| LOW | packages/core/test/helpers/index.ts | 52 | export function WorkflowExecuteAdditionalData( | CODE |
| LOW | packages/core/src/node-execute-functions.ts | 31 | export function getExecuteTriggerFunctions( | CODE |
| LOW | packages/core/src/execution-engine/workflow-execute.ts | 111 | function normalizeUnhandledAxiosError(error: unknown, node: INode): ExecutionBaseError { | CODE |
| LOW | packages/core/src/execution-engine/eval-mock-helpers.ts | 56 | export function isSecretCredentialProperty(prop: INodeProperties): boolean { | CODE |
| LOW | packages/core/src/execution-engine/eval-mock-helpers.ts | 120 | export function serializeMockToHttpResponse( | CODE |
| LOW | packages/core/src/execution-engine/requests-response.ts | 89 | function prepareRequestedNodesForExecution( | CODE |
| LOW | packages/core/src/execution-engine/requests-response.ts | 187 | function prepareRequestingNodeForResuming( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 10 | export function setWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 57 | export function setAllWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 74 | export function getAllWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 81 | export function getWorkflowExecutionMetadata( | CODE |
| LOW | …execution-context/utils/data-table-helper-functions.ts | 8 | export function getDataTableHelperFunctions( | CODE |
| LOW | …ion-engine/node-execution-context/utils/custom-data.ts | 15 | export function createExecutionCustomData({ | CODE |
| LOW | …n-engine/node-execution-context/utils/extract-value.ts | 21 | function findPropertyFromParameterName( | CODE |
| LOW | …ne/node-execution-context/utils/get-additional-keys.ts | 62 | export function getNonWorkflowAdditionalKeys( | CODE |
| LOW | …xecution-context/utils/construct-execution-metadata.ts | 8 | export function constructExecutionMetaData( | CODE |
| LOW | …ion-context/utils/credential-check-helper-functions.ts | 3 | export function getCredentialCheckHelperFunctions( | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 106 | async function ensureParentDirectoryWithoutFollowingSymlinks( | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 149 | async function resolveContainingAllowedBase(targetPath: string): Promise<ResolvedFilePath | null> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 158 | async function resolveStagingBaseForTarget(target: ResolvedFilePath): Promise<ResolvedFilePath> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 178 | async function resolveTrustedAnchorForPath(targetPath: string): Promise<ResolvedFilePath | null> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 252 | async function openWithoutFollowingSymlinkedAncestors( | CODE |
| LOW | …e-execution-context/utils/get-input-connection-data.ts | 174 | function containsDataThatIsUsefulToTheAgent(nodeExecutionResult?: NodeOutput): boolean { | CODE |
| LOW | …e-execution-context/utils/get-input-connection-data.ts | 343 | function validateInputConfiguration( | CODE |
| LOW | …cution-context/utils/deduplication-helper-functions.ts | 30 | async function checkProcessedItemsAndRecord( | CODE |
| LOW | …ution-context/utils/trusted-source-helper-functions.ts | 4 | export function getTrustedSourceHelperFunctions( | CODE |
| LOW | …/node-execution-context/utils/request-helpers/oauth.ts | 316 | function resolveTokenExpiredStatusCode( | CODE |
| LOW | …/node-execution-context/utils/request-helpers/oauth.ts | 369 | function descriptorContainsSingleUseValue(descriptor: unknown): boolean { | CODE |
| LOW | …-execution-context/utils/request-helpers/pagination.ts | 45 | export function applyPaginationRequestData( | CODE |
| LOW | …-execution-context/utils/request-helpers/pagination.ts | 76 | export async function requestWithAuthenticationPaginated( | CODE |
| LOW | …cution-context/utils/request-helpers/authentication.ts | 48 | function shouldRetryAfterPreAuthentication( | CODE |
| LOW | …cution-context/utils/request-helpers/authentication.ts | 60 | export async function httpRequestWithAuthentication( | CODE |
| LOW | …cution-context/utils/request-helpers/authentication.ts | 207 | export async function requestWithAuthentication( | CODE |
| LOW | …rtial-execution-utils/recreate-node-execution-stack.ts | 39 | export function addWaitingExecutionSource( | CODE |
| LOW | …rtial-execution-utils/recreate-node-execution-stack.ts | 72 | export function recreateNodeExecutionStack( | CODE |
| LOW | …-execution-utils/find-trigger-for-partial-execution.ts | 36 | export function anyReachableRootHasRunData( | CODE |
| LOW | …-execution-utils/find-trigger-for-partial-execution.ts | 78 | export function findTriggerForPartialExecution( | CODE |
| LOW | …on-engine/partial-execution-utils/get-incoming-data.ts | 17 | export function getIncomingDataFromAnyRun( | CODE |
| LOW | …gine/partial-execution-utils/get-source-data-groups.ts | 5 | function sortByInputIndexThenByName( | CODE |
| LOW | packages/core/src/utils/assertions.ts | 14 | export function assertExecutionDataExists( | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 31 | export function markSlackInteractionRequest(req: object): void { | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 40 | export function isSlackInteractionRequest(req: object): boolean { | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 52 | export function markTelegramInteractionRequest(req: object): void { | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 61 | export function isTelegramInteractionRequest(req: object): boolean { | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 91 | export function buildHitlCallbackReference( | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 110 | export function parseHitlCallbackReference(data: string): ParsedHitlCallbackReference | null { | CODE |
| LOW | packages/core/src/utils/hitl-callback-reference.ts | 124 | export function verifyHitlCallbackReference( | CODE |
| LOW | …ckages/core/src/observability/tracing/span-sampling.ts | 41 | export function shouldIgnoreIncomingRequest(urlPath: string): boolean { | CODE |
| LOW | …ckages/core/src/observability/tracing/span-sampling.ts | 50 | export function shouldIgnoreOutgoingRequest(url: string): boolean { | CODE |
| LOW | …ckages/core/src/observability/tracing/span-sampling.ts | 125 | export function buildBeforeSendTransaction( | CODE |
| LOW | …es/frontend/editor-ui/src/app/init/expressionEngine.ts | 19 | export async function initializeExpressionEngine( | CODE |
| LOW | packages/frontend/editor-ui/src/app/init/index.ts | 122 | export async function initializeAuthenticatedFeatures( | CODE |
| LOW | packages/frontend/editor-ui/src/app/init/index.ts | 294 | function registerAuthenticationHooks() { | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowUpdate.ts | 282 | function setDefaultCredentialsOnNodes(nodes: INode[]): void { | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowUpdate.ts | 316 | function updateWorkflowNameIfNeeded(name?: string, isInitialGeneration?: boolean): void { | CODE |
| LOW | …itor-ui/src/app/composables/usePolicyViolationToast.ts | 95 | function closePolicyViolationToast(resolvedAction: PolicyRefusedAction) { | CODE |
| LOW | …tor-ui/src/app/composables/useWorkflowNormalization.ts | 26 | function requireNodeTypeDescription( | CODE |
| LOW | …-ui/src/app/composables/useFixedCollectionItemState.ts | 15 | export function useFixedCollectionItemState( | CODE |
| 4446 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .agents/skills/node-add-oauth/SKILL.md | 86 | // ── Custom scopes block (ONLY when CUSTOM_SCOPES = yes) ────────────── | COMMENT |
| MEDIUM | .agents/skills/node-add-oauth/SKILL.md | 110 | // ── End custom scopes block ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 770 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 771 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 772 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 813 | // ┌───────┐1 ┌────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 814 | // │trigger├───►set1├─┐ ┌─────┐ ►► | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 815 | // └───────┘ └────┘ └─► │1 ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 817 | // ┌────┐1┌─► │ └───────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 818 | // │set2├─┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 878 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 879 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 880 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 931 | // ┌────┐0 ┌─────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 932 | // ┌───────┐1 │ ├──────►afterLoop│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 933 | // │trigger├───┬──►loop│1 └─────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 934 | // └───────┘ │ │ ├─┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 936 | // │ │ ┌──────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 938 | // │ └──────┘ │ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 939 | // └────────────────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 993 | // ┌───────┐ ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 995 | // └───────┘│ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 996 | // │ ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 998 | // └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1097 | // ┌───────┐ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1099 | // └───────┘ └───────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1100 | // │ ┌──────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1102 | // └──────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1171 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1172 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1173 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1221 | // ┌───────┐1 ┌─────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1222 | // │trigger├──────►node1| | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1223 | // └───────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1269 | // ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1270 | // │node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1271 | // └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1307 | // ┌──────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1308 | // │ source ├─────►│ destination │ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1309 | // └──────────┘ └─────────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1053 | // ┌───────┐ ┌───────────┐ ┌─────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1055 | // └───────┘ └───────────┘ └─────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1344 | // ┌─────────┐1 ┌────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1346 | // └─────────┘ └────────┘ └─────────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1390 | // ┌─────────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1392 | // └─────────────┘ └─────────────┘ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 34 | // ┌───────┐1 ┌────┐ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 35 | // │Trigger├──────►│Node│ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 36 | // └───────┘ └────┘ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 81 | // ┌───────┐0 ┌────┐ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 82 | // │Trigger├──────►│Node│ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 83 | // └───────┘ └────┘ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 115 | // ┌───────┐1 ┌────┐ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 116 | // │Trigger├──────►│Node│ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 117 | // └───────┘ └────┘ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 161 | // ┌───────┐1 ┌─────┐ ┌─────┐ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 162 | // │Trigger├─────►│Node1├──────►│Node2│ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 163 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 187 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …-utils/__tests__/recreate-node-execution-stack.test.ts | 189 | // └───────┘ │ └─────┘ │ └─────┘ | COMMENT |
| 889 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …on-context/utils/__tests__/create-node-as-tool.test.ts | 487 | expect(tool.schema.shape.complexJson._def.defaultValue()).toEqual({ | CODE |
| CRITICAL | …on-context/utils/__tests__/create-node-as-tool.test.ts | 588 | expect(tool.schema.shape.excessArgs._def.defaultValue()).toBe('default'); | CODE |
| CRITICAL | …features/ndv/parameters/utils/buttonParameter.utils.ts | 131 | payload.context.inputSchema.schema.value.splice(index, 1); | CODE |
| CRITICAL | …res/shared/editors/components/CodeNodeEditor/linter.ts | 387 | node.right.callee.object.name.startsWith('$'); // n8n var, e.g $input | CODE |
| CRITICAL | …ty/testing/playwright/composables/TemplatesComposer.ts | 61 | await this.n8n.templateCredentialSetup.credentialModal.oauthConnectButton.click(); | CODE |
| CRITICAL | …kages/cli/test/integration/public-api/discover.test.ts | 76 | response.body.data.resources.tags.endpoints.some( | CODE |
| CRITICAL | …kages/cli/test/integration/public-api/discover.test.ts | 81 | response.body.data.resources.tags.endpoints.some( | CODE |
| CRITICAL | packages/cli/src/__tests__/workflow-helpers.test.ts | 1120 | child.data.resultData.runData.Last.unshift({ | CODE |
| CRITICAL | packages/cli/src/__tests__/workflow-helpers.test.ts | 1127 | if (!lastRunOnly) child.data.resultData.runData.Last.reverse(); | CODE |
| CRITICAL | packages/cli/src/__tests__/workflow-helpers.test.ts | 1148 | child.data.resultData.runData.Last.unshift({ | CODE |
| CRITICAL | …sts__/instance-ai.service.builderAskedForInput.test.ts | 146 | const speccedCalls = service.telemetry.track.mock.calls.filter( | CODE |
| CRITICAL | …ules/instance-ai/__tests__/instance-ai.service.test.ts | 1170 | service.logger.warn.mock.invocationCallOrder.at(-1)!, | CODE |
| CRITICAL | …ules/instance-ai/__tests__/instance-ai.service.test.ts | 3797 | const setupEvents = service.telemetry.track.mock.calls.filter( | CODE |
| CRITICAL | …ules/instance-ai/__tests__/instance-ai.service.test.ts | 6508 | return service.telemetry.track.mock.calls.map(([event, properties]) => { | CODE |
| CRITICAL | packages/workflow/test/sub-workflow-output.test.ts | 204 | input.data.resultData.runData.Last.reverse(); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 25 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 26 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 35 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 36 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 58 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 59 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 68 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3991/issue-3991.ts | 69 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 24 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 25 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 35 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 36 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 50 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/6471/issue-6471.ts | 51 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3997/issue-3997.ts | 24 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3997/issue-3997.ts | 25 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3997/issue-3997.ts | 34 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3997/issue-3997.ts | 35 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/4719/issue-4719.ts | 45 | loadedPost.hstoreObj.should.be.deep.equal({ | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/4719/issue-4719.ts | 73 | loadedPost.hstoreObj.should.be.deep.equal({ | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/4897/issue-4897.ts | 24 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/4897/issue-4897.ts | 25 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/4897/issue-4897.ts | 35 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/4897/issue-4897.ts | 36 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7217/issue-7217.ts | 26 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7217/issue-7217.ts | 27 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7217/issue-7217.ts | 39 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7217/issue-7217.ts | 40 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 24 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 25 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 35 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 36 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 50 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/3076/issue-3076.ts | 51 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …s/@n8n/typeorm/test/github-issues/10567/issue-10567.ts | 25 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …s/@n8n/typeorm/test/github-issues/10567/issue-10567.ts | 26 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …s/@n8n/typeorm/test/github-issues/10567/issue-10567.ts | 37 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …s/@n8n/typeorm/test/github-issues/10567/issue-10567.ts | 38 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7110/issue-7110.ts | 26 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7110/issue-7110.ts | 27 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7110/issue-7110.ts | 38 | sqlInMemory.upQueries.length.should.be.equal( | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/7110/issue-7110.ts | 42 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/8158/issue-8158.ts | 24 | sqlInMemory.upQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/8158/issue-8158.ts | 25 | sqlInMemory.downQueries.length.should.be.greaterThan(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/8158/issue-8158.ts | 35 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …de-execution-context/__tests__/webhook-context.test.ts | 216 | email: 'user@example.com', | CODE |
| LOW | …re/src/execution-engine/__tests__/routing-node.test.ts | 159 | email: 'test@test.com', | CODE |
| LOW | …re/src/execution-engine/__tests__/routing-node.test.ts | 992 | email: 'test@test.com', | CODE |
| LOW | …tend/editor-ui/src/app/components/WorkflowCard.test.ts | 239 | expect(badge).toHaveTextContent('John Doe'); | CODE |
| LOW | …end/editor-ui/src/app/components/app/AppCommandBar.vue | 56 | :placeholder="placeholder" | CODE |
| LOW | …itor-ui/src/app/dev/dev-panel/collectElementContext.ts | 185 | const label = el.getAttribute('aria-label') ?? el.getAttribute('placeholder'); | CODE |
| LOW | …WorkflowPreviewSuggestions/workflows/score-my-leads.ts | 68 | props: { title: 'New lead', subtitle: 'John Doe' }, | CODE |
| LOW | …ponents/visualizations/SalesforceCardVisualization.vue | 20 | subtitle: 'John Doe', | CODE |
| LOW | …ui/src/features/settings/context/context.utils.test.ts | 84 | ownerName: 'Jane Doe', | CODE |
| LOW | …ui/src/features/settings/context/context.utils.test.ts | 124 | ).toBe('Jane Doe'); | CODE |
| LOW | …s/settings/context/components/PreferencesTable.test.ts | 154 | expect(author).toHaveTextContent('Jane Doe'); | CODE |
| LOW | …ui/src/features/settings/users/users.constants.test.ts | 39 | firstName: 'John Doe', | CODE |
| LOW | …ures/settings/users/components/DeleteUserModal.test.ts | 30 | email: 'admin@example.com', | CODE |
| LOW | …eatures/settings/users/views/SettingsUsersView.test.ts | 94 | email: 'admin@example.com', | CODE |
| LOW | …es/collaboration/projects/components/ProjectFilter.vue | 95 | :placeholder="placeholder" | CODE |
| LOW | …ion/projects/components/ProjectExternalSecrets.test.ts | 69 | props: ['modelValue', 'placeholder', 'clearable', 'size'], | CODE |
| LOW | …ion/projects/components/ProjectExternalSecrets.test.ts | 75 | :placeholder="placeholder" | CODE |
| LOW | …ion/projects/components/ProjectExternalSecrets.test.ts | 316 | expect(searchInput).toHaveAttribute('placeholder', 'Search secrets...'); | CODE |
| LOW | …ration/projects/components/ProjectMembersTable.test.ts | 225 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | …ration/projects/components/ProjectMembersTable.test.ts | 440 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | …/components/ProjectSettingsCustomTelemetryTags.test.ts | 14 | props: ['modelValue', 'placeholder', 'ariaLabel'], | CODE |
| LOW | …/components/ProjectSettingsCustomTelemetryTags.test.ts | 20 | :placeholder="placeholder" | CODE |
| LOW | …rc/features/core/auth/components/MfaSetupModal.test.ts | 143 | expect(getCodeInput()).toHaveAttribute('placeholder', '123456'); | CODE |
| LOW | …atures/core/auth/components/PromptMfaCodeModal.test.ts | 69 | expect(getCodeInput()).toHaveAttribute('placeholder', '123456 or c79f9c02-7b2e-44…'); | CODE |
| LOW | …atures/core/auth/components/PromptMfaCodeModal.test.ts | 236 | expect(getCodeInput()).toHaveAttribute('placeholder', '123456'); | CODE |
| LOW | …/features/core/auth/views/SettingsPersonalView.test.ts | 47 | fullName: 'John Doe', | CODE |
| LOW | …/features/core/dataTable/composables/useAgGrid.test.ts | 334 | data: { name: 'John Doe' }, | CODE |
| LOW | …/features/core/dataTable/composables/useAgGrid.test.ts | 344 | expect(mockCopy).toHaveBeenCalledWith('John Doe'); | CODE |
| LOW | …core/dataTable/components/DataTableBreadcrumbs.test.ts | 185 | expect(input).toHaveAttribute('placeholder', 'Data table name'); | CODE |
| LOW | …/src/features/ndv/runData/components/RunDataSearch.vue | 176 | :placeholder="placeholder" | CODE |
| LOW | …tor-ui/src/features/ndv/runData/components/RunData.vue | 1915 | "name": "Jane Doe", | CODE |
| LOW | …tor-ui/src/features/ndv/runData/components/RunData.vue | 1992 | 'Jane Doe', | CODE |
| LOW | …eters/components/Collection/CollectionParameterNew.vue | 284 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …eters/components/Collection/CollectionParameterNew.vue | 324 | :label="placeholder" | CODE |
| LOW | …eters/components/Collection/CollectionParameterNew.vue | 358 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …eters/components/Collection/CollectionParameterNew.vue | 392 | :label="placeholder" | CODE |
| LOW | …ectorParameterInput/WorkflowSelectorParameterInput.vue | 448 | :placeholder="placeholder" | CODE |
| LOW | …SelectorParameterInput/AgentSelectorParameterInput.vue | 397 | :placeholder="placeholder" | CODE |
| LOW | …FixedCollection/FixedCollectionParameterLegacy.test.ts | 213 | name: 'placeholder', | CODE |
| LOW | …ts/FixedCollection/FixedCollectionParameterNew.test.ts | 140 | name: 'placeholder', | CODE |
| LOW | …ts/FixedCollection/FixedCollectionParameterNew.test.ts | 243 | ['Email', ['fieldLabel', 'fieldType', 'placeholder']], | CODE |
| LOW | …ts/FixedCollection/FixedCollectionParameterNew.test.ts | 281 | ['Email', ['fieldLabel', 'fieldType', 'placeholder']], | CODE |
| LOW | …ts/FixedCollection/FixedCollectionParameterNew.test.ts | 845 | name: 'placeholder', | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 606 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 612 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 683 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 701 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 727 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 733 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 785 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 801 | :label="placeholder" | CODE |
| LOW | …rkflowHistory/useWorkflowHistoryVersionOptions.test.ts | 68 | resolveUserDisplayName: (userId) => (userId === 'user-1' ? 'John Doe' : null), | CODE |
| LOW | …rkflowHistory/useWorkflowHistoryVersionOptions.test.ts | 73 | publishedBy: 'John Doe', | CODE |
| LOW | …istory/components/WorkflowHistoryVersionSelect.test.ts | 99 | publishedBy: 'John Doe', | CODE |
| LOW | …elements/nodes/render-types/CanvasNodeChoicePrompt.vue | 76 | task: 'placeholder', | CODE |
| LOW | …s/WorkflowSettings/WorkflowCustomTelemetryTags.test.ts | 31 | props: ['id', 'modelValue', 'placeholder', 'disabled'], | CODE |
| LOW | …s/WorkflowSettings/WorkflowCustomTelemetryTags.test.ts | 34 | '<input v-bind="$attrs" :id="id" :value="modelValue" :placeholder="placeholder" :disabled="disabled" @input="$emit( | CODE |
| LOW | …i/src/features/agents/components/AgentTestChatPage.vue | 105 | :placeholder="placeholder" | CODE |
| LOW | …c/features/agents/components/AgentCredentialSelect.vue | 68 | :placeholder="placeholder" | CODE |
| LOW | …eatures/agents/__tests__/AgentCredentialSelect.test.ts | 50 | :data-placeholder="placeholder" | CODE |
| 1018 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cubic.yaml | 1 | # yaml-language-server: $schema=https://cubic.dev/schema/cubic-repository-config.schema.json | COMMENT |
| LOW | .poutine.yml | 1 | # Poutine Security Scanner Configuration | COMMENT |
| LOW | .poutine.yml | 41 | # Poutine flags them as potential risks, but they are safe due to their | COMMENT |
| LOW | docker/test-get-n8n.sh | 1 | #!/bin/sh | COMMENT |
| LOW | docker/get-n8n.sh | 1 | #!/bin/sh | COMMENT |
| LOW | .devcontainer/preview/devcontainer.json | 21 | }, | COMMENT |
| LOW | scripts/dev-metrics/shadow-shim.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …ngine/node-execution-context/node-execution-context.ts | 461 | // if (name.charAt(0) === '=') { | COMMENT |
| LOW | …-engine/__tests__/webhook-respond-branch-order.test.ts | 1 | // Documents branch execution order around the Respond to Webhook node, for | COMMENT |
| LOW | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …-execution-utils/find-trigger-for-partial-execution.ts | 121 | const webhookTriggers = parentTriggers.filter((trigger) => trigger.type.endsWith('webhook')); | COMMENT |
| LOW | …ial-execution-utils/__tests__/find-start-nodes.test.ts | 521 | COMMENT | |
| LOW | …xecution-utils/__tests__/filter-disabled-nodes.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …xecution-utils/__tests__/filter-disabled-nodes.test.ts | 81 | }); | COMMENT |
| LOW | …artial-execution-utils/__tests__/find-subgraph.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …artial-execution-utils/__tests__/find-subgraph.test.ts | 121 | COMMENT | |
| LOW | …artial-execution-utils/__tests__/find-subgraph.test.ts | 241 | ); | COMMENT |
| LOW | …ecution-utils/__tests__/get-source-data-groups.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …rtial-execution-utils/__tests__/clean-run-data.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …rtial-execution-utils/__tests__/directed-graph.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …rtial-execution-utils/__tests__/directed-graph.test.ts | 141 | COMMENT | |
| LOW | …rtial-execution-utils/__tests__/directed-graph.test.ts | 341 | // │ │o o│ │o o│ │ | COMMENT |
| LOW | …rtial-execution-utils/__tests__/directed-graph.test.ts | 381 | .addNodes(node0, node2) | COMMENT |
| LOW | …rtial-execution-utils/__tests__/directed-graph.test.ts | 421 | expect(newConnections).toHaveLength(1); | COMMENT |
| LOW | …artial-execution-utils/__tests__/handle-cycles.test.ts | 1 | // NOTE: Diagrams in this file have been created with https://asciiflow.com/#/ | COMMENT |
| LOW | …artial-execution-utils/__tests__/handle-cycles.test.ts | 41 | COMMENT | |
| LOW | …artial-execution-utils/__tests__/handle-cycles.test.ts | 81 | }); | COMMENT |
| LOW | …ontend/editor-ui/src/app/composables/useKeybindings.ts | 181 | }; | COMMENT |
| LOW | …ontend/editor-ui/src/app/composables/useNodeHelpers.ts | 421 | if (Object.keys(foundIssues).length) { | COMMENT |
| LOW | …ontend/editor-ui/src/app/composables/useNodeHelpers.ts | 441 | // resolver needs an external identity extracted from the trigger data. | COMMENT |
| LOW | …sables/usePushConnection/handlers/executionFinished.ts | 81 | COMMENT | |
| LOW | …s/usePushConnection/handlers/workflowActivated.test.ts | 181 | resolveFetch({ id: 'wf-123', checksum: 'abc' }); | COMMENT |
| LOW | packages/frontend/editor-ui/src/app/constants/notice.ts | 1 | export const HIRING_BANNER = ` | COMMENT |
| LOW | …ontend/editor-ui/src/app/stores/executionData.store.ts | 161 | applyReconcileExecutionIssuesEntries(runData ? Object.keys(runData) : []); | COMMENT |
| LOW | …ditor-ui/src/app/components/WorkflowCanvasHostBody.vue | 61 | useExecutionDataStore(createExecutionDataId(id)).setExecution(props.initialExecution); | COMMENT |
| LOW | …tend/editor-ui/src/features/agents/agentEvals.store.ts | 981 | if (!isPendingStatus(summary.status)) { | COMMENT |
| LOW | …c/features/agents/components/AgentEvalResultsPanel.vue | 101 | toast.showError(error, i18n.baseText('agents.builder.agentEvals.review.saveError')); | COMMENT |
| LOW | …i/src/features/agents/components/AgentEvalsSection.vue | 61 | dataset.value && isDataTableDataset(dataset.value) ? dataset.value : null, | COMMENT |
| LOW | …ditor-ui/src/features/agents/components/ToolIoView.vue | 81 | }; | COMMENT |
| LOW | …itor-ui/src/features/agents/views/AgentBuilderView.vue | 2441 | // Persist the agent and flush the config autosave before sending the chat | COMMENT |
| LOW | …itor-ui/src/features/agents/views/AgentBuilderView.vue | 3041 | // still owed — without it B inherits A's indicator and the flush | COMMENT |
| LOW | …integrations/logStreaming.ee/logStreaming.constants.ts | 81 | // options: [ | COMMENT |
| LOW | …integrations/logStreaming.ee/logStreaming.constants.ts | 101 | // displayName: 'Credential Type', | COMMENT |
| LOW | …src/features/ai/evaluation.ee/wizardSidepanel.store.ts | 41 | const endNodeName = ref<string>(''); | COMMENT |
| LOW | …src/features/ai/evaluation.ee/wizardSidepanel.store.ts | 61 | // list: results list (index) · create: execution picker · detail: case form. | COMMENT |
| LOW | …atures/ai/evaluation.ee/composables/useCompareCases.ts | 61 | COMMENT | |
| LOW | …i/evaluation.ee/components/RunDetail/RunComparison.vue | 1 | <script setup lang="ts"> | COMMENT |
| LOW | …valuationsCanvasInfoCard/EvaluationsCanvasInfoCard.vue | 21 | // continuous scroll — single-list looping would visibly snap back. The | COMMENT |
| LOW | …src/features/ai/instanceAi/instanceAi.threadRuntime.ts | 1041 | // interleaved out of order, so the reconnect cursor keeps the max seen | COMMENT |
| LOW | …r-ui/src/features/ai/instanceAi/agentTimeline.utils.ts | 161 | } | COMMENT |
| LOW | …tanceAi/components/InstanceAiTestAgentPreviewPanel.vue | 61 | // Generated with `save: false` — a preview, not yet persisted. Nothing backs | COMMENT |
| LOW | …ures/ai/instanceAi/components/InstanceAiThreadList.vue | 81 | (typeof route.params.threadId === 'string' ? route.params.threadId : undefined), | COMMENT |
| LOW | packages/frontend/editor-ui/src/__tests__/setup.ts | 1 | import '@n8n/vitest-config/setup/frontend'; | COMMENT |
| LOW | …ckages/frontend/@n8n/design-system/src/css/slider.scss | 1 | // Pulls element-plus's default slider styles into the bundle. Without this | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/common/var.scss | 601 | var(--button--color--background--primary) | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 61 | // equivalent declarative transitions. | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 241 | 'claude-ai': ClaudeLogo, | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 441 | // the body's inner height; once it exceeds the cap, this container scrolls instead of pushing the | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 501 | // and IDE (Add to Cursor / VS Code) setups. Modelled on the reference's black branded button: a | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 1421 | // projects"). Only the counts show on the page; the per-workflow exposure UI lives on a dedicated | COMMENT |
| 355 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 16 | ## Step 1: Understand the Rule | COMMENT |
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 25 | ## Step 2: Implement the Rule | COMMENT |
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 85 | ## Step 3: Write Tests | COMMENT |
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 139 | ## Step 4: Register the Rule | COMMENT |
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 166 | ## Step 5: Write Documentation | COMMENT |
| LOW | .agents/skills/create-community-node-lint-rule/SKILL.md | 196 | ## Step 6: Verify | COMMENT |
| LOW | .agents/skills/reproduce-bug/SKILL.md | 11 | ## Step 1: Parse Signals | COMMENT |
| LOW | .agents/skills/reproduce-bug/SKILL.md | 21 | ## Step 2: Route to Test Strategy | COMMENT |
| LOW⚡ | .agents/skills/reproduce-bug/SKILL.md | 37 | ## Step 3: Locate Source Files | COMMENT |
| LOW⚡ | .agents/skills/reproduce-bug/SKILL.md | 45 | ## Step 4: Trace the Code Path | COMMENT |
| LOW⚡ | .agents/skills/reproduce-bug/SKILL.md | 52 | ## Step 5: Form Hypothesis | COMMENT |
| LOW⚡ | .agents/skills/reproduce-bug/SKILL.md | 59 | ## Step 6: Find Test Patterns | COMMENT |
| LOW⚡ | .agents/skills/reproduce-bug/SKILL.md | 67 | ## Step 7: Write Failing Test | COMMENT |
| LOW | .agents/skills/reproduce-bug/SKILL.md | 82 | ## Step 8: Run and Score | COMMENT |
| LOW | .agents/skills/reproduce-bug/SKILL.md | 96 | ## Step 9: Iterate or Bail | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2136 | // Step 1: Find initial candidates - nodes that overlap with or are to the right of insertion | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2144 | // Step 2: Add all downstream connected nodes from initial candidates | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2165 | // Step 3: Get all candidate regular nodes (they overlap with or are downstream of insertion) | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2171 | // Step 4: Classify sticky notes behavior | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 87 | // Step 1: Build direct sub-node map | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 91 | // Step 2: Find all sub-node names (union of all direct sub-node sets) | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 97 | // Step 3: Root parents = nodes with sub-nodes that are NOT themselves sub-nodes | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 107 | // Step 4: For each root parent, recursively collect ALL transitive sub-nodes | COMMENT |
| LOW | …src/features/setupPanel/composables/groupSetupCards.ts | 158 | // Step 5: Build final list — replace claimed cards with node group entries | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 438 | // Step 3: Wait for containerd readiness | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 448 | // Step 4: Preload n8n image into K3s containerd | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 452 | // Step 5: Download chart to host | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 455 | // Step 6: Create n8n core secrets (encryption key, host config) | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 458 | // Step 7: Deploy queue infrastructure if needed | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 463 | // Step 8: Install n8n chart using published example values file + dynamic overrides | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 476 | // Step 9: Patch service to NodePort so traffic goes through K3s's exposed port | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 486 | // Step 10: Poll health endpoint | COMMENT |
| LOW | packages/quality/environments/containers/helm-stack.ts | 376 | // Step 1: Start K3s with NodePort exposed (bypasses flaky kubectl port-forward) | COMMENT |
| LOW | packages/quality/environments/containers/helm-stack.ts | 395 | // Step 2: Write kubeconfig to a stable path and merge into ~/.kube/config | COMMENT |
| LOW | packages/quality/environments/containers/stack.ts | 269 | // Step 1: Start services sequentially within each dependency level. | COMMENT |
| LOW | packages/quality/environments/containers/stack.ts | 364 | // Step 2: Start n8n (main 1 first for DB setup, then rest in parallel) | COMMENT |
| LOW | …s/quality/environments/containers/services/keycloak.ts | 562 | // Step 1: GET the Keycloak authorization page (HTML with login form). | COMMENT |
| LOW⚡ | …s/quality/environments/containers/services/keycloak.ts | 637 | // Step 2: Extract the Keycloak login form action URL. | COMMENT |
| LOW⚡ | …s/quality/environments/containers/services/keycloak.ts | 645 | // Step 3: POST credentials with session cookies — Keycloak responds with 302 | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 156 | // Step 1: Check execution-status before authorization. | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 166 | // Step 2: Use the authorizationUrl from execution-status to start the OAuth2 flow. | COMMENT |
| LOW | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 177 | // Step 3: Complete the Keycloak authorization code flow for the test user. | COMMENT |
| LOW | …quality/testing/playwright/utils/performance-helper.ts | 232 | // Step 1: Trigger snapshot on server | COMMENT |
| LOW | …quality/testing/playwright/utils/performance-helper.ts | 249 | // Step 2: Download the snapshot file from the server | COMMENT |
| LOW | …test/integration/eventbus/README-manual-test-syslog.md | 7 | ### Step 1 - Configure and start syslog-ng | COMMENT |
| LOW | …test/integration/eventbus/README-manual-test-syslog.md | 58 | ### Step 2 - Configure log streaming in n8n | COMMENT |
| LOW | …test/integration/eventbus/README-manual-test-syslog.md | 74 | ### Step 1 - Setup Test Certs | COMMENT |
| LOW | …test/integration/eventbus/README-manual-test-syslog.md | 105 | ### Step 2 - Configure and start syslog-ng | COMMENT |
| LOW | …test/integration/eventbus/README-manual-test-syslog.md | 158 | ### Step 3 - Configure log streaming in n8n | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 85 | // Step 1: Owner initiates OAuth flow (authenticated) | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 90 | // Step 2: Mock external OAuth provider response | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 95 | // Step 3: Callback arrives WITHOUT authentication | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 125 | // Step 1: Owner initiates OAuth flow | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 130 | // Step 2: Mock external OAuth provider response | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 135 | // Step 3: Different user completes the callback | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 64 | // Step 1: API call (setData) - this will save to real database | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 67 | // Step 2: Verify data was saved to database by reading it back | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 72 | // Step 3: Decrypt and verify the saved data | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 77 | // Step 4: Test that the data was set in memory | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 115 | // Step 1: Save data to database first | COMMENT |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/testmax-assistant-ui/scripts/report.py | 13 | "checks": [{"ok": true|false|null, "text": "..."}]}} | STRING |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/report.py | 356 | let run = null, index = 0, opener = null; | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/report.py | 379 | run = null; | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/report.py | 428 | if (version && version !== REPORT_VERSION) { | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 222 | const summary = e.target.closest && e.target.closest('details.fold > summary'); | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 223 | if (!summary || e.target.closest('.run-picker')) return; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 240 | let zoomed = null, opener = null, castPlayer = null, castName = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 262 | castPlayer = castName = null; | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 278 | const shotHidden = !shot || shot.hidden; | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 279 | img.hidden = isCast || shotHidden; | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 280 | if (shot && !shot.hidden && img.getAttribute('src') !== shot.getAttribute('src')) { img.src = shot.src; img.alt = sh | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 287 | zoomed = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 300 | if (zoomed === null) return; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 317 | const follow = first || !active || active === items[items.length - 1]; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 326 | if (open !== undefined) d.open = open; | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 360 | if (row && seen[`row:${name}`] !== run.row) { row.innerHTML = run.row; seen[`row:${name}`] = run.row; } | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 362 | if (section && seen[`panel:${name}`] !== run.panel) { | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 363 | swapPanel(section, run.panel, seen[`panel:${name}`] === undefined); | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 369 | if (img && run.shot && shots[name] !== run.shot) { | CODE |
| HIGH⚡ | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 376 | if (zoomed !== null) showZoom(zoomed); | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 1480 | if (version && version !== REPORT_VERSION) { | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2016 | const list = e.target.closest ? e.target.closest('.step-list') : null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2035 | const title = r.querySelector('.run-name')?.textContent || r.dataset.run; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2043 | if (e.target.closest && e.target.closest('summary .run-picker')) e.preventDefault(); | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2076 | let canvasRun = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2085 | const zoomable = zoomed || (img.complete && img.naturalWidth > img.clientWidth + 1); | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2134 | canvasRun = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2138 | if (!a || e.button || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2164 | let replayMode = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2184 | speed, idleTimeLimit: $('skip-idle').checked ? 2 : undefined, fit: 'both', poster: 'npt:0:8', | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 2265 | replayMode = null; | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 18 | "checks": [{"id": 3, "ok": true|false|null, "text": "..."}]}} | STRING |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/merge_verdicts.py | 13 | gave. A split is listed under disagreements. Without a majority, the check is not confirmed (ok null). | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2136 | // Step 1: Find initial candidates - nodes that overlap with or are to the right of insertion | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2144 | // Step 2: Add all downstream connected nodes from initial candidates | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2165 | // Step 3: Get all candidate regular nodes (they overlap with or are downstream of insertion) | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 2171 | // Step 4: Classify sticky notes behavior | COMMENT |
| LOW | …ontend/editor-ui/src/app/stores/workflowsList.store.ts | 150 | // so in order to filter out folders, we need to check if resource is not folder | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 87 | // Step 1: Build direct sub-node map | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 91 | // Step 2: Find all sub-node names (union of all direct sub-node sets) | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 97 | // Step 3: Root parents = nodes with sub-nodes that are NOT themselves sub-nodes | COMMENT |
| LOW⚡ | …src/features/setupPanel/composables/groupSetupCards.ts | 107 | // Step 4: For each root parent, recursively collect ALL transitive sub-nodes | COMMENT |
| LOW | …src/features/setupPanel/composables/groupSetupCards.ts | 158 | // Step 5: Build final list — replace claimed cards with node group entries | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 438 | // Step 3: Wait for containerd readiness | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 448 | // Step 4: Preload n8n image into K3s containerd | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 452 | // Step 5: Download chart to host | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 455 | // Step 6: Create n8n core secrets (encryption key, host config) | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 458 | // Step 7: Deploy queue infrastructure if needed | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 463 | // Step 8: Install n8n chart using published example values file + dynamic overrides | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 476 | // Step 9: Patch service to NodePort so traffic goes through K3s's exposed port | COMMENT |
| LOW⚡ | packages/quality/environments/containers/helm-stack.ts | 486 | // Step 10: Poll health endpoint | COMMENT |
| LOW | packages/quality/environments/containers/helm-stack.ts | 376 | // Step 1: Start K3s with NodePort exposed (bypasses flaky kubectl port-forward) | COMMENT |
| LOW | packages/quality/environments/containers/helm-stack.ts | 395 | // Step 2: Write kubeconfig to a stable path and merge into ~/.kube/config | COMMENT |
| LOW | packages/quality/environments/containers/stack.ts | 269 | // Step 1: Start services sequentially within each dependency level. | COMMENT |
| LOW | packages/quality/environments/containers/stack.ts | 364 | // Step 2: Start n8n (main 1 first for DB setup, then rest in parallel) | COMMENT |
| LOW | …s/quality/environments/containers/services/keycloak.ts | 562 | // Step 1: GET the Keycloak authorization page (HTML with login form). | COMMENT |
| LOW⚡ | …s/quality/environments/containers/services/keycloak.ts | 637 | // Step 2: Extract the Keycloak login form action URL. | COMMENT |
| LOW⚡ | …s/quality/environments/containers/services/keycloak.ts | 645 | // Step 3: POST credentials with session cookies — Keycloak responds with 302 | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 156 | // Step 1: Check execution-status before authorization. | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 166 | // Step 2: Use the authorizationUrl from execution-status to start the OAuth2 flow. | COMMENT |
| LOW | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 177 | // Step 3: Complete the Keycloak authorization code flow for the test user. | COMMENT |
| LOW | …quality/testing/playwright/utils/performance-helper.ts | 232 | // Step 1: Trigger snapshot on server | COMMENT |
| LOW | …quality/testing/playwright/utils/performance-helper.ts | 249 | // Step 2: Download the snapshot file from the server | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 85 | // Step 1: Owner initiates OAuth flow (authenticated) | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 90 | // Step 2: Mock external OAuth provider response | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 95 | // Step 3: Callback arrives WITHOUT authentication | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 125 | // Step 1: Owner initiates OAuth flow | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 130 | // Step 2: Mock external OAuth provider response | COMMENT |
| LOW⚡ | …gration/controllers/oauth/oauth2.skip-auth.api.test.ts | 135 | // Step 3: Different user completes the callback | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 64 | // Step 1: API call (setData) - this will save to real database | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 67 | // Step 2: Verify data was saved to database by reading it back | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 72 | // Step 3: Decrypt and verify the saved data | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 77 | // Step 4: Test that the data was set in memory | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 115 | // Step 1: Save data to database first | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 124 | // Step 2: Simulate PubSub event (this will load from database) | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 127 | // Step 3: Verify data was loaded from database | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 342 | // Step 1: Complete integration flow (skip frontend for test) | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 345 | // Step 2: Verify database persistence | COMMENT |
| LOW⚡ | …credentials/credentials-overwrites.integration.test.ts | 351 | // Step 3: Test PubSub reload | COMMENT |
| LOW | …credentials/credentials-overwrites.integration.test.ts | 362 | // Step 4: Test that overwrites work correctly with new data | COMMENT |
| LOW | …credentials/credentials-overwrites.integration.test.ts | 375 | // Step 5: Test middleware still works | COMMENT |
| LOW | packages/cli/src/oauth/oauth.service.ts | 1254 | // Step 2: Discover Authorization Server Metadata (RFC 8414 / OpenID Connect) | COMMENT |
| LOW | packages/cli/src/auth/auth.service.ts | 177 | // If MFA is enforced, we need to check if the user has MFA enabled and used it during authentication | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1385 | // Step 1: Save preferences with a valid PEM key+cert (simulating API call) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1393 | // Step 2: Capture what would be stored in DB (encrypted key, plaintext cert) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1397 | // Step 3: Mock DB to return the stored (encrypted) preferences | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1404 | // Step 4: Simulate server restart — loadFromDbAndApplySamlPreferences(true) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1408 | // Step 5: Verify the key can still be decrypted back to the original PEM | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1871 | // Step 1: Sanitize for export (simulate push) | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1880 | // Step 2: Merge sanitized data back (simulate pull) | COMMENT |
| LOW | …hat-hub/__tests__/chat-hub.service.integration.test.ts | 1240 | // Step 1: Send a human message and get an AI response | COMMENT |
| LOW | …hat-hub/__tests__/chat-hub.service.integration.test.ts | 1299 | // Step 2: Regenerate the AI message — capture the workflow | COMMENT |
| LOW | …src/modules/provisioning.ee/provisioning.service.ee.ts | 95 | * we need to check if they are the last owner to avoid an instance losing its only owner | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | knip.ts | 177 | // Imported only by the ignored AI scaffold templates. | COMMENT |
| MEDIUM | …ui/src/app/stores/workflowExecutionState.store.test.ts | 311 | // Re-set since promotePendingExecution would have moved it; emulate raw scaffold state. | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 455 | // `null` → IN_PROGRESS scaffold, else displayed id) so these stay | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 658 | // When transitioning to a real execution id while a pending scaffold | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 660 | // migrate the scaffold into the id-keyed executionData store so the | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 1019 | // Pending scaffold: filter the IN_PROGRESS placeholder data and | COMMENT |
| MEDIUM | …sStarterCollection/workflows/3_agent_with_knowledge.ts | 55 | '### Readme\nLoad your data into a vector database with the 📚 **Load Data** flow, and then use your data as chat co | CODE |
| MEDIUM | …res/workflows/templates/utils/samples/rag_starter.json | 58 | "content": "### Readme\nLoad your data into a vector database with the 📚 **Load Data** flow, and then use your data | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 289 | "content": "Part 1: Introduction to n8n — What It Is and How It Works | by TONI RAMCHANDANI | Data And Beyond | Me | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 289 | "content": "Part 1: Introduction to n8n — What It Is and How It Works | by TONI RAMCHANDANI | Data And Beyond | Me | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 289 | "content": "Part 1: Introduction to n8n — What It Is and How It Works | by TONI RAMCHANDANI | Data And Beyond | Me | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 977 | "content": "What is n8n? An In-Depth Guide to Workflow Automation\n===============\n\n | COMMENT |
| MEDIUM | …code-health/src/rules/encryption-boundary.rule.test.ts | 285 | '// eslint-disable-next-line no-console -- unrelated to encryption guardrails\nexport const a = 1;\n', | CODE |
| MEDIUM | packages/cli/src/modules/breaking-changes/README.md | 41 | breaking-changes.service.ts # Detection orchestration | CODE |
| MEDIUM | …v2/__tests__/engine-lifecycle-event-push-relay.test.ts | 99 | // Would overwrite the editor's existing run data with an empty scaffold. | COMMENT |
| MEDIUM | packages/workflow/src/interfaces.ts | 4361 | used_guardrails?: string[]; // only for @n8n/n8n-nodes-langchain.guardrails | CODE |
| MEDIUM | …8n/nodes-langchain/nodes/Guardrails/Guardrails.node.ts | 30 | url: 'https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.guardrails/', | CODE |
| MEDIUM | …ckages/@n8n/nodes-langchain/nodes/Guardrails/CREDIT.MD | 6 | - Original project: [openai/openai-guardrails-js](https://github.com/openai/openai-guardrails-js) | CODE |
| MEDIUM | …des-langchain/nodes/Guardrails/v2/GuardrailsV2.node.ts | 38 | // ai_languageModel is required only when LLM-based guardrails are used | COMMENT |
| MEDIUM | …des-langchain/nodes/Guardrails/v2/GuardrailsV2.node.ts | 45 | // Model is required when ANY of these LLM guardrails exist | COMMENT |
| MEDIUM | …nodes-langchain/nodes/Guardrails/actions/checks/pii.ts | 1 | // Source: https://github.com/openai/openai-guardrails-js/blob/b9b99b4fb454f02a362c2836aec6285176ec40a8/src/checks/pii.t | COMMENT |
| MEDIUM | …odes-langchain/nodes/Guardrails/actions/checks/urls.ts | 1 | // Source: https://github.com/openai/openai-guardrails-js/blob/b9b99b4fb454f02a362c2836aec6285176ec40a8/src/checks/urls. | COMMENT |
| MEDIUM | …-langchain/nodes/Guardrails/actions/checks/keywords.ts | 1 | // Source: https://github.com/openai/openai-guardrails-js/blob/b9b99b4fb454f02a362c2836aec6285176ec40a8/src/checks/keywo | COMMENT |
| MEDIUM | …uators/llm-judge/evaluators/functionality-evaluator.ts | 69 | ## n8n RAG Pipeline Pattern (CRITICAL - Do Not Misunderstand) | COMMENT |
| MEDIUM | …flow-builder.ee/src/code-builder/code-builder-agent.ts | 284 | // Run agentic loop | COMMENT |
| MEDIUM | packages/@n8n/node-cli/src/template/core.test.ts | 75 | // and renamed back at scaffold time. | COMMENT |
| MEDIUM | packages/@n8n/agents/src/types/runtime/event.ts | 108 | // Can be used for observability or controlling the agent. The idea that HITL, guardrails, logging, etc. can be done as | COMMENT |
| MEDIUM | packages/@n8n/agents/src/runtime/loop/agent-runtime.ts | 1166 | // Price the turn before guardrails see it. The finish chunk prices | COMMENT |
| MEDIUM | packages/@n8n/agents/src/sdk/agent.ts | 439 | // TODO: guardrails can be a middleware internally | COMMENT |
| MEDIUM | …/workflow-sdk/test-fixtures/committed-workflows/6.json | 329 | "message": "=<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:800px;margin:0 auto;padding:2 | CODE |
| MEDIUM | …workflow-builder/plugins/validators/agent-validator.ts | 38 | // Skip checks for auto/guardrails mode (undefined defaults to auto) | COMMENT |
| MEDIUM | …c/prompts/best-practices/guides/document-processing.ts | 210 | ### Vector Storage (for RAG/Semantic Search) | COMMENT |
| MEDIUM | …es/@n8n/workflow-sdk/src/validation/display-options.ts | 121 | // Pattern like 'guardrails.(jailbreak|nsfw)' becomes regex /^guardrails\.(jailbreak|nsfw)$/ | COMMENT |
| MEDIUM | packages/@n8n/instance-ai/evaluations/README.md | 1395 | ├── execution.service.ts # Phase 1 + Phase 2 orchestration | CODE |
| MEDIUM | …n/instance-ai/evaluations/discovery/agent-builder.json | 670 | "instructions": "## Config Mutation Guidance\n\n### Purpose\n\nUse this after deciding a config change is needed and | CODE |
| MEDIUM | …ations/binaryChecks/checks/agent-has-dynamic-prompt.ts | 27 | // auto (default when omitted) and guardrails modes handle prompting internally | COMMENT |
| MEDIUM | packages/@n8n/instance-ai/docs/tools.md | 1382 | ### `agent_builder_build_agent` *(orchestration tool — requires the `agents` backend module)* | COMMENT |
| MEDIUM | .github/workflows/test-e2e-reusable.yml | 169 | # Uses pre-distributed specs if orchestration enabled, otherwise falls back to Playwright sharding | COMMENT |
| MEDIUM⚡ | .github/workflows/test-evals-mcp.yml | 302 | # --timeout-ms 25min: MCP-tier multi-agent cases with large mocked | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/test-get-n8n.sh | 3 | # Test harness for get-n8n.sh. Requires docker + compose v2 (like the script). | COMMENT |
| MEDIUM | docker/test-get-n8n.sh | 17 | # on master — the harness must test this branch's compose file. | COMMENT |
| MEDIUM | docker/get-n8n.sh | 28 | # harness to install from a working copy). | COMMENT |
| MEDIUM | …n-engine/node-execution-context/utils/extract-value.ts | 176 | // Definitely doesn't have value extractor | COMMENT |
| MEDIUM | …/features/settings/sso/components/OidcSettingsForm.vue | 201 | // robust against storedHasProjectRules drift. | COMMENT |
| MEDIUM | …/features/settings/sso/components/SamlSettingsForm.vue | 275 | // robust against storedHasProjectRules drift. | COMMENT |
| MEDIUM | …es/ai/evaluation.ee/composables/useCyclingVerb.test.ts | 58 | // Lower bound rather than exact count keeps the test robust if the | COMMENT |
| MEDIUM | …ting/playwright/tests/cli-workflows/workflows/250.json | 18 | "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.b | CODE |
| MEDIUM | …ting/playwright/tests/cli-workflows/workflows/259.json | 143 | "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.b | CODE |
| MEDIUM | …sting/playwright/tests/cli-workflows/workflows/91.json | 18 | "functionCode": "item.data = `<!doctype html>\n<html data-n-head-ssr>\n\n<body >\n<div data-server-rendered=\"true\" | CODE |
| MEDIUM | …ting/playwright/tests/cli-workflows/workflows/233.json | 18 | "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.b | CODE |
| MEDIUM | …ting/playwright/tests/cli-workflows/workflows/248.json | 237 | "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.b | CODE |
| MEDIUM | …ting/playwright/tests/cli-workflows/workflows/252.json | 18 | "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.b | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 38 | "content": "AI Workflow Automation Platform & Tools - n8n\n===============\n\nGo from prompt to possibility with A | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 707 | "content": "What is n8n? Docs, Demo and How to Deploy | Shakudo\n===============\n\n[Latest in White Paper : The E | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 707 | "content": "What is n8n? Docs, Demo and How to Deploy | Shakudo\n===============\n\n[Latest in White Paper : The E | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 707 | "content": "What is n8n? Docs, Demo and How to Deploy | Shakudo\n===============\n\n[Latest in White Paper : The E | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 707 | "content": "What is n8n? Docs, Demo and How to Deploy | Shakudo\n===============\n\n[Latest in White Paper : The E | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 977 | "content": "What is n8n? An In-Depth Guide to Workflow Automation\n===============\n\n}. ${call.tool} (${call.kind})${call.error ? ' — ERRORED' : ''}${call.autoApproved ? ' [approv | CODE |
| MEDIUM | packages/@n8n/instance-ai/evaluations/run/persist.ts | 122 | // (build-failed) verdicts and is robust to duplicate expectation strings. | COMMENT |
| MEDIUM | …s/@n8n/instance-ai/evaluations/langtracer/normalize.ts | 26 | // fails the whole suite. Stripping to the allowed set is robust where deleting | COMMENT |
| MEDIUM⚡ | .github/workflows/test-evals-mcp.yml | 294 | # reads of repo files — including the eval harness and case corpus. | COMMENT |
| MEDIUM⚡ | .github/workflows/test-evals-mcp.yml | 304 | # 32 klines rows). Scoped here, NOT the harness default — under the | COMMENT |
| LOW | .github/actions/setup-nodejs/action.yml | 345 | # exported, so the nested builds can just use it. Starting a second | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/create-pr/SKILL.md | 91 | - Add a "🤖 PR Summary generated by AI" at the end of the body | CODE |
| HIGH | …ion-engine/__tests__/workflow-execute-run-node.test.ts | 5 | * They have been generated by claude code, but have been proven to work | COMMENT |
| HIGH | …valuation.ee/components/RunDetail/AiSummarySection.vue | 2 | // TODO(TRUST-70 follow-up): replace this stub with real AI-generated summary. | COMMENT |
| HIGH | …d/editor-ui/src/features/ai/assistant/builder.store.ts | 219 | // AI-generated test data — persists throughout the session for apply/re-apply | COMMENT |
| HIGH | …li/src/evaluation.ee/insights/eval-insights.service.ts | 43 | * `modelUsed` value for the deterministic path. The FE keys "Generated by AI" | COMMENT |
| HIGH | packages/nodes-base/TESTING.MD | 15 | 3. **Review and refine**: Thoroughly review the generated tests, make necessary fixes, and remove redundant tests. __Eve | CODE |
| HIGH | …s-base/nodes/Evaluation/Evaluation/Description.node.ts | 193 | description: 'The real response generated by AI (e.g. an agent or LLM in the workflow)', | CODE |
| HIGH | …s-base/nodes/Evaluation/Evaluation/Description.node.ts | 222 | description: 'The response generated by AI (e.g. an agent or LLM in the workflow)', | CODE |
| HIGH | packages/workflow/src/node-helpers.ts | 894 | // still be considered valid (e.g. happens when generated by AI). | COMMENT |
| HIGH | …uations/programmatic/evaluators/workflow-similarity.ts | 88 | * @param generatedWorkflow - Workflow generated by AI | COMMENT |
| HIGH | …uations/programmatic/evaluators/workflow-similarity.ts | 219 | * @param generatedWorkflow - Workflow generated by AI | COMMENT |
| HIGH | …flow-builder.ee/src/code-builder/prompts/index.test.ts | 89 | // Should contain auto-generated code with workflow name | COMMENT |
| HIGH | packages/@n8n/workflow-sdk/src/workflow-builder.test.ts | 275 | // This pattern MUST work (AI-generated code style) | COMMENT |
| HIGH | …n8n/workflow-sdk/src/codegen/codegen-roundtrip.test.ts | 2113 | // This is the failing case from the user's workflow where the AI generated: | COMMENT |
| HIGH | …n/workflow-sdk/src/codegen/edge-case-roundtrip.test.ts | 797 | // This simulates AI-generated code with unescaped contractions | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/testmax-assistant-ui/scripts/run.py | 204 | except (OSError, ValueError): | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/run.py | 208 | except Exception: | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/run.py | 245 | except Exception: | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/run.py | 242 | except json.JSONDecodeError: | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/common.py | 133 | except OSError: | CODE |
| HIGH | .agents/skills/testmax-assistant-ui/scripts/common.py | 147 | except ProcessLookupError: | CODE |
| HIGH | …gents/skills/testmax-assistant-ui/scripts/live_page.py | 35 | except ValueError: | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 465 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | …ents/skills/testmax-n8n-ai/scripts/request_recorder.py | 182 | except OSError: | CODE |
| HIGH | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 59 | except ValueError: | CODE |
| HIGH | …gents/skills/testmax-n8n-ai/scripts/run_instance_ai.py | 176 | except json.JSONDecodeError: | CODE |
| HIGH | …ges/@n8n/task-runner-python/src/health_check_server.py | 46 | except Exception: | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_runner.py | 510 | except asyncio.CancelledError: | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_runner.py | 155 | except asyncio.CancelledError: | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_executor.py | 296 | except (ProcessLookupError, ConnectionError, BrokenPipeError): | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_executor.py | 443 | except Exception: | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_executor.py | 479 | except Exception: | CODE |
| HIGH | packages/@n8n/task-runner-python/src/task_executor.py | 248 | except Exception: | CODE |
| HIGH | …kages/@n8n/task-runner-python/src/import_validation.py | 21 | except (ImportError, ValueError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 208 | except Exception: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 227 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 245 | except Exception: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 285 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 758 | except Exception: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 767 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 817 | except Exception as e: | CODE |
| MEDIUM | .agents/skills/testmax-assistant-ui/scripts/run.py | 224 | def _read(self, thread_id): | CODE |
| MEDIUM | .agents/skills/testmax-assistant-ui/scripts/run.py | 810 | def master_side(): | CODE |
| LOW | …gents/skills/testmax-assistant-ui/scripts/live_page.py | 38 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/run_scenarios.py | 113 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/run_scenarios.py | 122 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/run_scenarios.py | 143 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/run_scenarios.py | 164 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/claims.py | 154 | except Exception as e: | CODE |
| MEDIUM | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 1346 | def load_run(sub, meta, prices): | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 1349 | except Exception as e: # keep the other runs when one run has broken files | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/summarize_runs.py | 152 | except Exception as e: | CODE |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_instance_ai.py | 161 | except Exception as e: | CODE |
| MEDIUM | …gents/skills/testmax-n8n-ai/scripts/run_instance_ai.py | 158 | def read_stream(client, thread_id, out_queue, stop): | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/prepare.py | 34 | except Exception: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/prepare.py | 64 | except Exception as e: | CODE |
| LOW | .agents/skills/testmax-n8n-ai/scripts/prepare.py | 73 | except Exception: | CODE |
| LOW | …8n/task-runner-python/tests/unit/test_task_analyzer.py | 463 | except Exception as e: | CODE |
| LOW | …task-runner-python/tests/integration/test_execution.py | 442 | except Exception as e: | CODE |
| LOW | …ges/@n8n/task-runner-python/src/health_check_server.py | 46 | except Exception: | CODE |
| LOW | packages/@n8n/task-runner-python/src/shutdown.py | 51 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_runner.py | 140 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_runner.py | 227 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_runner.py | 370 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_runner.py | 448 | except Exception as e: | CODE |
| LOW | …ages/@n8n/task-runner-python/src/_sandbox_callables.py | 113 | except Exception: | CODE |
| LOW | packages/@n8n/task-runner-python/src/pipe_reader.py | 41 | except Exception as e: | CODE |
| MEDIUM | packages/@n8n/task-runner-python/src/pipe_reader.py | 29 | def run(self): | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 222 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 248 | except Exception: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 277 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 443 | except Exception: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 479 | except Exception: | CODE |
| LOW | packages/@n8n/task-runner-python/src/sentry.py | 116 | except Exception as e: | CODE |
| LOW | packages/@n8n/task-runner-python/src/main.py | 59 | except Exception: | CODE |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 84 | print(f"Error: Workflow file not found: {path}", file=sys.stderr) | STRING |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 87 | print(f"Error: Invalid JSON in {path}: {e}", file=sys.stderr) | STRING |
| LOW⚡ | …aluations/programmatic/python/src/compare_workflows.py | 89 | except Exception as e: | STRING |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 90 | print(f"Error loading {path}: {e}", file=sys.stderr) | STRING |
| LOW⚡ | …aluations/programmatic/python/src/compare_workflows.py | 274 | except Exception as e: | CODE |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 275 | print(f"Error loading configuration: {e}", file=sys.stderr) | CODE |
| LOW⚡ | …aluations/programmatic/python/src/compare_workflows.py | 282 | except Exception as e: | CODE |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 283 | print(f"Error building workflow graphs: {e}", file=sys.stderr) | CODE |
| LOW⚡ | …aluations/programmatic/python/src/compare_workflows.py | 293 | except Exception as e: | CODE |
| MEDIUM⚡ | …aluations/programmatic/python/src/compare_workflows.py | 294 | print(f"Error calculating similarity: {e}", file=sys.stderr) | CODE |
| LOW | …aluations/programmatic/python/src/compare_workflows.py | 332 | except Exception as e: | CODE |
| LOW | …r.ee/evaluations/programmatic/python/src/similarity.py | 123 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/cli/src/modules/ldap.ee/README.md | 65 | -H "X-N8N-API-KEY: <YOUR_API_KEY>" \ | CODE |
| HIGH | packages/cli/src/modules/ldap.ee/README.md | 65 | -H "X-N8N-API-KEY: <YOUR_API_KEY>" \ | CODE |
| HIGH | packages/cli/src/modules/ldap.ee/README.md | 100 | -H "X-N8N-API-KEY: <YOUR_API_KEY>" \ | CODE |
| HIGH | packages/cli/src/modules/ldap.ee/README.md | 100 | -H "X-N8N-API-KEY: <YOUR_API_KEY>" \ | CODE |
| HIGH | …chain/nodes/chains/ChainLLM/test/ChainLlm.node.test.ts | 504 | "# Authentication\n\nUse API keys for all requests:\n\n```javascript\nconst headers = {\n 'Authorization': 'Bear | CODE |
| HIGH | …chain/nodes/chains/ChainLLM/test/ChainLlm.node.test.ts | 513 | curl: "```bash\ncurl -X GET https://api.example.com/users \\\n -H 'Authorization: Bearer YOUR_API_KEY'\n```", | CODE |
| HIGH | …s/llm-judge/evaluators/node-configuration-evaluator.ts | 60 | - Placeholder API keys like "YOUR_API_KEY" or similar patterns | CODE |
| HIGH | …kflow-builder.ee/src/chains/test/integration/README.md | 24 | export N8N_AI_ANTHROPIC_KEY=your-api-key-here | CODE |
| HIGH | …gin-community-nodes/docs/rules/no-hardcoded-secrets.md | 58 | const apiKey = 'your-api-key-here'; | CODE |
| HIGH | …community-nodes/src/rules/no-hardcoded-secrets.test.ts | 50 | { name: 'placeholder value', code: "const apiKey = 'your-api-key-goes-here-xxxx';" }, | CODE |
| HIGH | …ages/@n8n/instance-ai/skills/workflow-builder/SKILL.md | 150 | named none. Never hardcode fake values (`user@example.com`, `YOUR_API_KEY`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …gents/skills/testmax-assistant-ui/scripts/live_page.py | 17 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/report.py | 26 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/shutdown.py | 7 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/shutdown.py | 8 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/shutdown.py | 9 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 1 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 11 | CODE | |
| LOW | …8n/task-runner-python/src/errors/task_runtime_error.py | 4 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 1 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 2 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 3 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 4 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 5 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 6 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 7 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 8 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 9 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 10 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 11 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 12 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 13 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 14 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 7 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 9 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 9 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 10 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 10 | CODE | |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 11 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 411 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 629 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 185 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/run.py | 224 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/common.py | 118 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/report.py | 122 | CODE | |
| LOW | .agents/skills/testmax-assistant-ui/scripts/report.py | 629 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 55 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/live_server.py | 538 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 137 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 196 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 220 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 264 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 407 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_cli_builder.py | 496 | CODE | |
| LOW | …ents/skills/testmax-n8n-ai/scripts/request_recorder.py | 85 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 124 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 241 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 608 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 849 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 908 | CODE | |
| LOW | .agents/skills/testmax-n8n-ai/scripts/summarize_runs.py | 103 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_instance_ai.py | 158 | CODE | |
| LOW | …gents/skills/testmax-n8n-ai/scripts/run_instance_ai.py | 192 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/task_analyzer.py | 61 | CODE | |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 489 | CODE | |
| LOW | …kages/@n8n/task-runner-python/src/format_validation.py | 12 | CODE | |
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 245 | CODE | |
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 340 | CODE | |
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 439 | CODE | |
| LOW | …aluations/programmatic/python/src/compare_workflows.py | 119 | CODE | |
| LOW | …aluations/programmatic/python/src/compare_workflows.py | 176 | CODE | |
| LOW | …r.ee/evaluations/programmatic/python/src/similarity.py | 223 | CODE | |
| LOW | …e/evaluations/programmatic/python/src/graph_builder.py | 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …nal/repository/find-methods/repostiory-find-methods.ts | 156 | it('should return True when matches the given criteria', () => | CODE |
| HIGH | …nal/repository/find-methods/repostiory-find-methods.ts | 177 | it('should return True when matches the given multiple criteria', () => | CODE |
| HIGH | …nal/repository/find-methods/repostiory-find-methods.ts | 199 | it('should return True when matches the given find options', () => | CODE |
| HIGH | …nal/repository/find-methods/repostiory-find-methods.ts | 218 | it('should return True when matches both criteria and find options', () => | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 103 | # Check if names match using the hash | COMMENT |
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 201 | # Check if source and target node types match | COMMENT |
| LOW | …/evaluations/programmatic/python/src/cost_functions.py | 271 | # Check if this parameter should be ignored (should be filtered already, but double-check) | COMMENT |
| LOW | …e/evaluations/programmatic/python/src/graph_builder.py | 30 | # Check if node should be ignored | COMMENT |
| LOW | …e/evaluations/programmatic/python/src/graph_builder.py | 58 | # Check if this connection type should be ignored | COMMENT |
| LOW | …e/evaluations/programmatic/python/src/graph_builder.py | 116 | # Check if this parameter should be ignored | COMMENT |
| LOW | …e/evaluations/programmatic/python/src/graph_builder.py | 144 | # Check if 'trigger' is in type or name | COMMENT |
| LOW | .github/workflows/sec-sync-public-to-private.yml | 53 | # Check if private is ahead of public, ignore Bundle commits | COMMENT |
| LOW | .github/workflows/sec-sync-public-to-private.yml | 82 | # Check if private is ahead of public, ignore Bundle commits | COMMENT |
| LOW | .github/workflows/test-evals-ai-release.yml | 21 | # Check if it's a minor release (e.g., v1.2.0, not v1.2.1) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ents/readyToRunWorkflowsV2/workflows/ai-workflow-v5.ts | 97 | "=News Agent\n\n# Role\n\nYou are a concise, factual news assistant with access to these RSS tools:\n\n* BBC (Glob | CODE |
| MEDIUM | …ywright/tests/e2e/api/publish-unreachable-node.spec.ts | 17 | * attached. Neither the agent nor the parser has a language model, so both | COMMENT |
| MEDIUM⚡ | …386368372-unknown-host-POST-_v1_messages-4000e3a5.json | 64 | "content": "[{\"title\":\"n8n.io - AI workflow automation tool\",\"url\":\"https://n8n.io/\",\"description\":\"n | CODE |
| MEDIUM⚡ | …s/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json | 977 | "content": "What is n8n? An In-Depth Guide to Workflow Automation\n===============\n\n -> None: | CODE |
| LOW | packages/@n8n/task-runner-python/src/task_executor.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/@n8n/task-runner-python/src/message_types/__init__.py | 22 | __all__ = [ | CODE |
| LOW | packages/@n8n/task-runner-python/src/errors/__init__.py | 16 | __all__ = [ | CODE |
| LOW | …der.ee/evaluations/programmatic/python/src/__init__.py | 15 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …aluations/programmatic/python/src/compare_workflows.py | 68 | Load workflow JSON from file. Args: path: Path to workflow JSON file Returns: Workflow di | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ion-engine/partial-execution-utils/find-start-nodes.ts | 14 | // TODO: implement | COMMENT |
| LOW | …ion-engine/partial-execution-utils/find-start-nodes.ts | 21 | // TODO: implement | COMMENT |
| LOW | …stinations/message-event-bus-destination-webhook.ee.ts | 367 | // TODO: implement extra auth requests | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/core/src/execution-engine/requests-response.ts | 238 | export function handleRequest({ | CODE |
| LOW | …tures/ai/assistant/composables/useBuilderTodos.test.ts | 84 | function getData() { | CODE |
| LOW | packages/workflow/src/augment-object.ts | 25 | function getData(): unknown[] { | CODE |
| LOW⚡ | …8n/task-runner-python/tests/unit/test_task_analyzer.py | 594 | "def helper(): pass", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/get-n8n.sh | 5 | # Usage: | COMMENT |
| LOW | packages/@n8n/instance-ai/scripts/run-eval-lanes.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/testmax-n8n-ai/scripts/build_report.py | 1642 | CODE |