Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
This report presents the forensic synthetic code analysis of n8n-io/n8n, a TypeScript project with 196,354 GitHub stars. SynthScan v2.0 examined 4,035,701 lines of code across 22795 source files, recording 5699 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 2.4 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 5699 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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/eval-mock-helpers.ts | 54 | export function isSecretCredentialProperty(prop: INodeProperties): boolean { | CODE |
| LOW | packages/core/src/execution-engine/eval-mock-helpers.ts | 118 | 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 | 8 | export function setWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 46 | export function setAllWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 63 | export function getAllWorkflowExecutionMetadata( | CODE |
| LOW | …ine/node-execution-context/utils/execution-metadata.ts | 70 | 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 | 20 | 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 | 99 | async function ensureParentDirectoryWithoutFollowingSymlinks( | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 142 | async function resolveContainingAllowedBase(targetPath: string): Promise<ResolvedFilePath | null> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 151 | async function resolveStagingBaseForTarget(target: ResolvedFilePath): Promise<ResolvedFilePath> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 171 | async function resolveTrustedAnchorForPath(targetPath: string): Promise<ResolvedFilePath | null> { | CODE |
| LOW | …xecution-context/utils/file-system-helper-functions.ts | 245 | async function openWithoutFollowingSymlinkedAncestors( | CODE |
| LOW | …e-execution-context/utils/get-input-connection-data.ts | 159 | function containsDataThatIsUsefulToTheAgent(nodeExecutionResult?: NodeOutput): boolean { | CODE |
| LOW | …e-execution-context/utils/get-input-connection-data.ts | 328 | function validateInputConfiguration( | CODE |
| LOW | …cution-context/utils/deduplication-helper-functions.ts | 30 | async function checkProcessedItemsAndRecord( | CODE |
| LOW | …/node-execution-context/utils/request-helpers/oauth.ts | 307 | function resolveTokenExpiredStatusCode( | CODE |
| LOW | …-execution-context/utils/request-helpers/pagination.ts | 39 | export function applyPaginationRequestData( | CODE |
| LOW | …-execution-context/utils/request-helpers/pagination.ts | 70 | export async function requestWithAuthenticationPaginated( | CODE |
| LOW | …cution-context/utils/request-helpers/authentication.ts | 22 | export async function httpRequestWithAuthentication( | CODE |
| LOW | …cution-context/utils/request-helpers/authentication.ts | 150 | 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 | …ckages/core/src/observability/tracing/span-sampling.ts | 49 | export function shouldIgnoreIncomingRequest(urlPath: string): boolean { | CODE |
| LOW | …ckages/core/src/observability/tracing/span-sampling.ts | 58 | export function shouldIgnoreOutgoingRequest(url: string): boolean { | CODE |
| LOW | …ckages/core/src/observability/tracing/span-sampling.ts | 129 | export function buildBeforeSendTransaction( | CODE |
| LOW | packages/frontend/editor-ui/src/app/init.ts | 99 | export async function initializeAuthenticatedFeatures( | CODE |
| LOW | packages/frontend/editor-ui/src/app/init.ts | 230 | function registerAuthenticationHooks() { | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowUpdate.ts | 279 | function setDefaultCredentialsOnNodes(nodes: INode[]): void { | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowUpdate.ts | 313 | function updateWorkflowNameIfNeeded(name?: string, isInitialGeneration?: boolean): void { | CODE |
| LOW | …tor-ui/src/app/composables/useWorkflowNormalization.ts | 26 | function requireNodeTypeDescription( | CODE |
| LOW | …ges/frontend/editor-ui/src/app/composables/useToast.ts | 192 | function clearAllStickyNotifications() { | CODE |
| LOW | …-ui/src/app/composables/useFixedCollectionItemState.ts | 15 | export function useFixedCollectionItemState( | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 62 | function extractableErrorResultToMessage(result: ExtractableErrorResult) { | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 368 | function addReplacementNodeToSelectionGroup(selectionIds: string[], replacementNodeId: string) { | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 392 | function tryExtractNodesIntoSubworkflow(nodeIds: string[]): boolean { | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 445 | async function doExtractNodesIntoSubworkflow( | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 525 | function trackStartExtractWorkflow(nodeCount: number, success: boolean) { | CODE |
| LOW | …editor-ui/src/app/composables/useWorkflowExtraction.ts | 544 | async function extractNodesIntoSubworkflow( | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowsCache.ts | 46 | async function getMergedWorkflowSettings(workflowId: string): Promise<WorkflowSettings> { | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowsCache.ts | 113 | async function saveEvaluationPreferences( | CODE |
| LOW | …end/editor-ui/src/app/composables/useWorkflowsCache.ts | 120 | async function ignoreAllSuggestedActionsForAllWorkflows(actionsToIgnore: ActionType[]) { | CODE |
| LOW | …editor-ui/src/app/composables/usePostMessageHandler.ts | 183 | async function handleOpenExecutionPreview(json: { | CODE |
| LOW | …tor-ui/src/app/composables/useCanvasOperations.test.ts | 2299 | function createConnectionsBySource( | CODE |
| LOW | …tor-ui/src/app/composables/useCanvasOperations.test.ts | 2314 | function createGroupedNodeTypeDescription( | CODE |
| LOW | …tor-ui/src/app/composables/useCanvasOperations.test.ts | 2324 | function mockWorkflowObjectAccessors(nodes: TestNode[], connections: IConnections) { | CODE |
| LOW | …rc/app/composables/useWorkflowPublicationStatusSync.ts | 26 | export function useWorkflowPublicationStatusSync(documentId: MaybeRefOrGetter<WorkflowDocumentId>) { | CODE |
| 3071 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 | 625 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 626 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 627 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 668 | // ┌───────┐1 ┌────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 669 | // │trigger├───►set1├─┐ ┌─────┐ ►► | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 670 | // └───────┘ └────┘ └─► │1 ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 672 | // ┌────┐1┌─► │ └───────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 673 | // │set2├─┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 733 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 734 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 735 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 786 | // ┌────┐0 ┌─────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 787 | // ┌───────┐1 │ ├──────►afterLoop│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 788 | // │trigger├───┬──►loop│1 └─────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 789 | // └───────┘ │ │ ├─┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 791 | // │ │ ┌──────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 793 | // │ └──────┘ │ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 794 | // └────────────────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 848 | // ┌───────┐ ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 850 | // └───────┘│ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 851 | // │ ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 853 | // └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 952 | // ┌───────┐ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 954 | // └───────┘ └───────────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 955 | // │ ┌──────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 957 | // └──────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1026 | // ┌───────┐1 ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1027 | // │trigger├──────►node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1028 | // └───────┘ └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1076 | // ┌───────┐1 ┌─────┐1 | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1077 | // │trigger├──────►node1| | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1078 | // └───────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1124 | // ┌─────┐1 ┌─────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1125 | // │node1├──────►node2│ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1126 | // └─────┘ └─────┘ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1162 | // ┌──────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1163 | // │ source ├─────►│ destination │ | COMMENT |
| MEDIUM⚡ | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1164 | // └──────────┘ └─────────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 908 | // ┌───────┐ ┌───────────┐ ┌─────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 910 | // └───────┘ └───────────┘ └─────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1199 | // ┌─────────┐1 ┌────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1201 | // └─────────┘ └────────┘ └─────────────┘ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1245 | // ┌─────────────┐1 ┌─────────────┐ | COMMENT |
| MEDIUM | …rc/execution-engine/__tests__/workflow-execute.test.ts | 1247 | // └─────────────┘ └─────────────┘ | 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 |
| 725 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …on-context/utils/__tests__/create-node-as-tool.test.ts | 449 | expect(tool.schema.shape.complexJson._def.defaultValue()).toEqual({ | CODE |
| CRITICAL | …on-context/utils/__tests__/create-node-as-tool.test.ts | 550 | expect(tool.schema.shape.excessArgs._def.defaultValue()).toBe('default'); | CODE |
| CRITICAL | …features/ndv/parameters/utils/buttonParameter.utils.ts | 133 | 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 | …ents/__tests__/agent-knowledge-sandbox.service.test.ts | 530 | let commands = sandbox.process.executeCommand.mock.calls.map(([command]) => command); | CODE |
| CRITICAL | …ents/__tests__/agent-knowledge-sandbox.service.test.ts | 541 | commands = sandbox.process.executeCommand.mock.calls.map(([command]) => command); | CODE |
| CRITICAL | …ents/__tests__/agent-knowledge-sandbox.service.test.ts | 557 | commands = sandbox.process.executeCommand.mock.calls.map(([command]) => command); | CODE |
| CRITICAL | …es/testing/playwright/composables/TemplatesComposer.ts | 61 | await this.n8n.templateCredentialSetup.credentialModal.oauthConnectButton.click(); | 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 |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/8158/issue-8158.ts | 36 | sqlInMemory.downQueries.length.should.be.equal(0); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3120/issue-3120.ts | 127 | loadedLog.person.name.should.be.equal('Test Person #1'); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3120/issue-3120.ts | 128 | loadedLog.actionDetails.description.should.be.equal('Test Details #1'); | CODE |
| CRITICAL⚡ | …ges/@n8n/typeorm/test/github-issues/3120/issue-3120.ts | 129 | loadedLog.addresses.length.should.be.equal(3); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/3379/issue-3379.ts | 59 | sqlInMemory.upQueries.length.should.be.equal(0); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/9272/issue-9272.ts | 70 | user.address.latLong.should.not.haveOwnProperty('longitude'); | CODE |
| CRITICAL | …ges/@n8n/typeorm/test/github-issues/9272/issue-9272.ts | 72 | user.address.latLong.latitude.should.equal(-23); | CODE |
| 89 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …re/src/execution-engine/__tests__/routing-node.test.ts | 153 | email: 'test@test.com', | CODE |
| LOW | …re/src/execution-engine/__tests__/routing-node.test.ts | 911 | email: 'test@test.com', | CODE |
| LOW | …r-ui/src/app/stores/__tests__/utils/cloudStoreUtils.ts | 29 | email: 'test@test.com', | CODE |
| LOW | …tend/editor-ui/src/app/components/WorkflowCard.test.ts | 231 | expect(badge).toHaveTextContent('John Doe'); | CODE |
| LOW | …end/editor-ui/src/app/components/app/AppCommandBar.vue | 45 | :placeholder="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 | …itor-ui/src/app/dev/dev-panel/collectElementContext.ts | 185 | const label = el.getAttribute('aria-label') ?? el.getAttribute('placeholder'); | CODE |
| LOW | …teBuilderPrompt/components/EmptyStateBuilderPrompt.vue | 121 | :placeholder="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 | …tor-ui/src/features/settings/users/users.store.test.ts | 33 | firstName: 'John Doe', | CODE |
| LOW | …ures/settings/users/components/DeleteUserModal.test.ts | 28 | email: 'admin@example.com', | CODE |
| LOW | …eatures/settings/users/views/SettingsUsersView.test.ts | 92 | email: 'admin@example.com', | 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 | 204 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | …ration/projects/components/ProjectMembersTable.test.ts | 419 | 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 | …/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 | 184 | 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 | 1857 | "name": "Jane Doe", | CODE |
| LOW | …tor-ui/src/features/ndv/runData/components/RunData.vue | 1934 | '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 | 438 | :placeholder="placeholder" | CODE |
| LOW | …SelectorParameterInput/AgentSelectorParameterInput.vue | 378 | :placeholder="placeholder" | CODE |
| LOW | …FixedCollection/FixedCollectionParameterLegacy.test.ts | 213 | name: 'placeholder', | CODE |
| LOW | …ts/FixedCollection/FixedCollectionParameterNew.test.ts | 640 | name: 'placeholder', | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 601 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 607 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 678 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 696 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 722 | <N8nHeaderAction icon="plus" :label="placeholder" :disabled="isAddDisabled" /> | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 728 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 780 | :label="placeholder" | CODE |
| LOW | …onents/FixedCollection/FixedCollectionParameterNew.vue | 796 | :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 | 68 | task: 'placeholder', | CODE |
| LOW | …c/features/agents/components/AgentCredentialSelect.vue | 63 | :placeholder="placeholder" | CODE |
| LOW | …eatures/agents/__tests__/AgentCredentialSelect.test.ts | 50 | :data-placeholder="placeholder" | CODE |
| LOW | …atures/agents/__tests__/AgentVectorStoresModal.test.ts | 84 | 'placeholder', | CODE |
| LOW | …eatures/agents/__tests__/AgentBuilder.readonly.test.ts | 233 | props: ['modelValue', 'placeholder', 'isStreaming', 'canSubmit', 'disabled'], | CODE |
| LOW | …eatures/agents/__tests__/AgentBuilder.readonly.test.ts | 242 | expect(chatInput.props('placeholder')).toBe('agents.builder.readonly.placeholder'); | CODE |
| LOW | …eatures/agents/__tests__/AgentBuilder.readonly.test.ts | 298 | props: ['modelValue', 'placeholder', 'isStreaming', 'canSubmit', 'disabled'], | CODE |
| LOW | …eatures/agents/__tests__/AgentBuilder.readonly.test.ts | 340 | props: ['modelValue', 'placeholder', 'isStreaming', 'canSubmit', 'disabled'], | CODE |
| LOW | …eatures/agents/__tests__/AgentBuilder.readonly.test.ts | 348 | expect(chatInput.props('placeholder')).toBe('agents.chat.input.placeholder'); | CODE |
| LOW | …ts/__tests__/AgentToolConfigMcpApprovalSetting.test.ts | 52 | :data-placeholder="placeholder" | CODE |
| LOW | …/features/agents/__tests__/AgentSubAgentsModal.spec.ts | 62 | props: ['modelValue', 'placeholder', 'clearable', 'size'], | CODE |
| LOW | …/features/agents/__tests__/AgentSubAgentsModal.spec.ts | 65 | '<input v-bind="$attrs" :value="modelValue" :placeholder="placeholder" @input="$emit(\'update:modelValue\', $event.ta | CODE |
| LOW | …i/src/features/agents/__tests__/AgentInfoPanel.spec.ts | 24 | props: ['modelValue', 'variant', 'showToolbar', 'placeholder', 'readonly', 'maxHeight'], | CODE |
| LOW | …i/src/features/agents/__tests__/AgentInfoPanel.spec.ts | 115 | expect(editor.props('placeholder')).toBeUndefined(); | CODE |
| 845 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .poutine.yml | 1 | # Poutine Security Scanner Configuration | COMMENT |
| LOW | .poutine.yml | 41 | # These workflows check out code and run local actions/package managers. | COMMENT |
| LOW | packages/core/src/execution-engine/execution-context.ts | 141 | ...executionData.runtimeData, | COMMENT |
| LOW | …ngine/node-execution-context/node-execution-context.ts | 441 | ? node.credentials[type] | 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 | …rc/execution-engine/__tests__/workflow-execute.test.ts | 781 | expect(nodes).toContain(node2.name); | 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 | 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 | …pp/stores/workflowDocument/useWorkflowDocumentNodes.ts | 201 | // Node lookup indices — maintained via onNodesChange events. | COMMENT |
| LOW | …ditor-ui/src/app/components/WorkflowCanvasHostBody.vue | 61 | COMMENT | |
| LOW | …rkflows/canvas/composables/useCanvasNodeGroupLayout.ts | 181 | // left of the source's content is not pushed down: its own, later source | COMMENT |
| LOW | …r-ui/src/features/agents/components/AgentChatPanel.vue | 201 | defineExpose({ sendMessageFromOutside }); | COMMENT |
| LOW | …tures/agents/components/WorkflowExecutionLogViewer.vue | 121 | COMMENT | |
| LOW | …ditor-ui/src/features/agents/components/ToolIoView.vue | 101 | // The synth tool node deliberately uses `set` (a plain main-IO node) rather | COMMENT |
| LOW | …integrations/logStreaming.ee/logStreaming.constants.ts | 81 | // options: [ | COMMENT |
| LOW | …integrations/logStreaming.ee/logStreaming.constants.ts | 101 | // displayName: 'Credential Type', | COMMENT |
| LOW | …/executions/composables/useExecutionPreviewDocument.ts | 141 | // reference). An unsaved editor edit after the run (toggling a node, etc.) | COMMENT |
| LOW | …r-ui/src/features/ai/evaluation.ee/evaluation.utils.ts | 101 | } | COMMENT |
| LOW | …i/evaluation.ee/components/RunDetail/RunComparison.vue | 1 | <script setup lang="ts"> | COMMENT |
| LOW | ….ee/components/ConcurrencySlider/ConcurrencySlider.vue | 21 | max: 100, | COMMENT |
| LOW | …valuationsCanvasInfoCard/EvaluationsCanvasInfoCard.vue | 21 | // continuous scroll — single-list looping would visibly snap back. The | COMMENT |
| LOW | …ponents/WizardSidepanel/EvaluationsWizardSidepanel.vue | 201 | // Also reset + re-hydrate on a genuine workflow switch so prior-workflow | COMMENT |
| LOW | …src/features/ai/instanceAi/instanceAi.threadRuntime.ts | 641 | // ephemeral frames (deltas/status) ship without an `id:` line, so | COMMENT |
| LOW | …ui/src/features/ai/shared/agentsChat/messageMappers.ts | 141 | value.displayName.length > 0 && { displayName: value.displayName }), | COMMENT |
| LOW | packages/frontend/editor-ui/src/__tests__/setup.ts | 421 | COMMENT | |
| LOW | packages/frontend/editor-ui/src/__tests__/setup.ts | 461 | }; | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 321 | // height: getCssVar('pagination-button-height'); | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 341 | // color: getCssVar('pagination-hover-color'); | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 361 | // | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 381 | // } | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 401 | // & > * { | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 421 | // margin-left: getCssVar('pagination-item-gap'); | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 441 | // @include e(goto) { | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 461 | // margin-left: 8px; | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 481 | // color: getCssVar('color-white'); | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 501 | // @include m(small) { | COMMENT |
| LOW | …es/frontend/@n8n/design-system/src/css/pagination.scss | 521 | // | 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 | 241 | COMMENT | |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 401 | '.mcp-reveal { animation: mcp-reveal-in var(--duration--base, 240ms) var(--easing--ease-out, ease-out); }' + | COMMENT |
| LOW | …m/src/components/N8nSettingsLayout/Examples.stories.ts | 441 | dialogStyle.id = MCP_CONNECT_DIALOG_STYLE_ID; | COMMENT |
| 252 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | cubic.yaml | 16 | ## Step 1: Fetch Current Guidelines | COMMENT |
| LOW⚡ | cubic.yaml | 22 | ## Step 2: Review Process | COMMENT |
| LOW⚡ | cubic.yaml | 26 | ## Step 3: Test Requirement Interpretation | COMMENT |
| LOW | cubic.yaml | 44 | ## Step 4: Design System Style Rules | COMMENT |
| 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 | 76 | ## Step 8: Run and Score | COMMENT |
| LOW | .agents/skills/reproduce-bug/SKILL.md | 90 | ## Step 9: Iterate or Bail | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 1783 | // 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 | 1791 | // Step 2: Add all downstream connected nodes from initial candidates | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 1812 | // 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 | 1818 | // 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 | …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 |
| 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 | 989 | // Step 2: Discover Authorization Server Metadata (RFC 8414 / OpenID Connect) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1079 | // 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 | 1087 | // 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 | 1091 | // Step 3: Mock DB to return the stored (encrypted) preferences | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1098 | // Step 4: Simulate server restart — loadFromDbAndApplySamlPreferences(true) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1102 | // Step 5: Verify the key can still be decrypted back to the original PEM | COMMENT |
| LOW | …modules/source-control.ee/source-control.service.ee.ts | 545 | // IMPORTANT: Make sure the projects and folders get processed first as the workflows depend on them | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1774 | // Step 1: Sanitize for export (simulate push) | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1783 | // Step 2: Merge sanitized data back (simulate pull) | COMMENT |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | cubic.yaml | 16 | ## Step 1: Fetch Current Guidelines | COMMENT |
| LOW⚡ | cubic.yaml | 22 | ## Step 2: Review Process | COMMENT |
| LOW⚡ | cubic.yaml | 26 | ## Step 3: Test Requirement Interpretation | COMMENT |
| LOW | cubic.yaml | 44 | ## Step 4: Design System Style Rules | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 1783 | // 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 | 1791 | // Step 2: Add all downstream connected nodes from initial candidates | COMMENT |
| LOW⚡ | …d/editor-ui/src/app/composables/useCanvasOperations.ts | 1812 | // 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 | 1818 | // Step 4: Classify sticky notes behavior | COMMENT |
| LOW | …ontend/editor-ui/src/app/stores/workflowsList.store.ts | 151 | // 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⚡ | …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 | 989 | // Step 2: Discover Authorization Server Metadata (RFC 8414 / OpenID Connect) | COMMENT |
| LOW | packages/cli/src/auth/auth.service.ts | 118 | // 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 | 1079 | // 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 | 1087 | // 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 | 1091 | // Step 3: Mock DB to return the stored (encrypted) preferences | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1098 | // Step 4: Simulate server restart — loadFromDbAndApplySamlPreferences(true) | COMMENT |
| LOW⚡ | …src/modules/sso-saml/__tests__/saml.service.ee.test.ts | 1102 | // Step 5: Verify the key can still be decrypted back to the original PEM | COMMENT |
| LOW | …modules/source-control.ee/source-control.service.ee.ts | 360 | // If fileNames are provided, we need to check if they are allowed | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1774 | // Step 1: Sanitize for export (simulate push) | COMMENT |
| LOW⚡ | …-control.ee/__tests__/source-control-helper.ee.test.ts | 1783 | // 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 | 115 | * we need to check if they are the last owner to avoid an instance losing its only owner | COMMENT |
| LOW | packages/cli/src/services/role.service.ts | 404 | // This is a custom role, therefore we need to check if | COMMENT |
| LOW | packages/nodes-base/nodes/Webhook/utils.ts | 104 | // multi methods could be set in settings of node, so we need to check if it's an array | COMMENT |
| LOW | …bricks/actions/databricksSql/executeQuery.operation.ts | 21 | // Step 1: Execute the query. | COMMENT |
| LOW | …bricks/actions/databricksSql/executeQuery.operation.ts | 47 | // Step 2: Poll for completion (if in async mode) | COMMENT |
| LOW | …bricks/actions/databricksSql/executeQuery.operation.ts | 88 | // Step 3: Collect all chunks | COMMENT |
| LOW | …bricks/actions/databricksSql/executeQuery.operation.ts | 121 | // Step 4: Transform rows into objects using column names | COMMENT |
| LOW | …bricks/actions/modelServing/queryEndpoint.operation.ts | 25 | // Step 1: Fetch the OpenAPI schema for this endpoint | COMMENT |
| LOW | …bricks/actions/modelServing/queryEndpoint.operation.ts | 92 | // Step 2: Make the request using the URL from schema | COMMENT |
| LOW | …s/testing/playwright/tests/e2e/ai/chat-session.spec.ts | 30 | // Step 5: Get the new session ID | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 148 | // Step 1: Check execution-status before authorization. | COMMENT |
| LOW⚡ | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 158 | // Step 2: Use the authorizationUrl from execution-status to start the OAuth2 flow. | COMMENT |
| LOW | …/e2e/dynamic-credentials/external-user-trigger.spec.ts | 169 | // Step 3: Complete the Keycloak authorization code flow for the test user. | COMMENT |
| LOW | packages/testing/playwright/utils/performance-helper.ts | 249 | // Step 1: Trigger snapshot on server | COMMENT |
| LOW | packages/testing/playwright/utils/performance-helper.ts | 266 | // Step 2: Download the snapshot file from the server | COMMENT |
| LOW⚡ | packages/testing/containers/helm-stack.ts | 361 | // Step 3: Wait for containerd readiness | COMMENT |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ui/src/app/stores/workflowExecutionState.store.test.ts | 292 | // Re-set since promotePendingExecution would have moved it; emulate raw scaffold state. | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 316 | // `null` → IN_PROGRESS scaffold, else displayed id) so these stay | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 505 | // When transitioning to a real execution id while a pending scaffold | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 507 | // migrate the scaffold into the id-keyed executionData store so the | COMMENT |
| MEDIUM | …itor-ui/src/app/stores/workflowExecutionState.store.ts | 865 | // 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 | packages/cli/src/modules/breaking-changes/README.md | 24 | breaking-changes.service.ts # Detection orchestration | CODE |
| MEDIUM | packages/testing/playwright/AGENTS.md | 90 | # Discover test specs (for orchestration) | COMMENT |
| MEDIUM | packages/testing/playwright/AGENTS.md | 151 | # With guardrails - skip if diff too large | 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⚡ | …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 | packages/testing/playwright/docs/ORCHESTRATION.md | 169 | # Janitor orchestration (generic output) | COMMENT |
| MEDIUM | packages/workflow/src/interfaces.ts | 3718 | 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 | 289 | // 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 | 77 | // 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/sdk/agent.ts | 358 | // 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 | 833 | ├── execution.service.ts # Phase 1 + Phase 2 orchestration | 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 | 678 | ### `build-agent` *(orchestration tool — requires the `agents` backend module)* | COMMENT |
| MEDIUM | .github/workflows/test-e2e-reusable.yml | 138 | # Uses pre-distributed specs if orchestration enabled, otherwise falls back to Playwright sharding | COMMENT |
| MEDIUM | .github/workflows/test-evals-mcp.yml | 271 | # --timeout-ms 25min: MCP-tier multi-agent cases with large mocked | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …n-engine/node-execution-context/utils/extract-value.ts | 166 | // Definitely doesn't have value extractor | COMMENT |
| MEDIUM | …/features/settings/sso/components/OidcSettingsForm.vue | 195 | // robust against storedHasProjectRules drift. | COMMENT |
| MEDIUM | …/features/settings/sso/components/SamlSettingsForm.vue | 273 | // robust against storedHasProjectRules drift. | COMMENT |
| MEDIUM | …templates/utils/samples/tutorial/api_fundamentals.json | 429 | "content": "#### Lesson 5: Being Patient (Timeout & Error Handling)\n\nAn API request isn't instant. What if the kit | CODE |
| MEDIUM | …templates/utils/samples/tutorial/api_fundamentals.json | 528 | "content": "## Was this helpful? Let me know!\n[ 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/mutation-health-nightly.yml | 55 | # ranking, which is fine but loses the value formula's leverage. | COMMENT |
| MEDIUM | .github/workflows/test-evals-mcp.yml | 273 | # 32 klines rows). Scoped here, NOT the harness default — under the | COMMENT |
| LOW | .github/actions/setup-nodejs/action.yml | 244 | # 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 | 83 | - 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 | 16 | * uses this to gate any "Generated by AI" labelling — `deterministic` is | 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 | 789 | // 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 | 273 | // This pattern MUST work (AI-generated code style) | COMMENT |
| HIGH | …n8n/workflow-sdk/src/codegen/codegen-roundtrip.test.ts | 2089 | // 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 |
|---|---|---|---|---|
| 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 | …8n/task-runner-python/tests/unit/test_task_analyzer.py | 436 | 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 | 115 | 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 | …templates/utils/samples/tutorial/api_fundamentals.json | 508 | "rightValue": "your-api-key-for-example" | CODE |
| HIGH | …chain/nodes/chains/ChainLLM/test/ChainLlm.node.test.ts | 474 | "# 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 | 483 | 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 | …ages/@n8n/instance-ai/skills/workflow-builder/SKILL.md | 81 | named none. Never hardcode fake values (`user@example.com`, `YOUR_API_KEY`, | 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 | 49 | # Check if private is ahead of public, ignore Bundle commits | COMMENT |
| LOW | .github/workflows/sec-sync-public-to-private.yml | 75 | # 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 |
|---|---|---|---|---|
| MEDIUM | .poutine.yml | 4 | # This file defines skip rules for known-safe patterns. | COMMENT |
| MEDIUM | …/cli/src/modules/chat-hub/chat-hub-workflow.service.ts | 662 | ### Creating a Document | COMMENT |
| MEDIUM | packages/@n8n/benchmark/infra/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | .github/workflows/util-sync-api-docs.yml | 147 | # Create a single branch for multiple PRs | 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⚡ | …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 | 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 | 567 | "def helper(): pass", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/@n8n/instance-ai/scripts/run-eval-lanes.sh | 5 | # Usage: | COMMENT |