Skip to content

feat(core): Expose data store service to Data Store Node (no-changelog) #17970

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 67 commits into
base: master
Choose a base branch
from

Conversation

CharlieKolb
Copy link
Contributor

@CharlieKolb CharlieKolb commented Aug 4, 2025

Summary

This PR adds the connecting piece between the API work on branch ADO-3851 and the node on branch ADO-3852-with-node.

We expose a new function on the helpers on the node this object which provides a DataStoreProxy that infers the projectId based on the current workflow, and ensures the specified dataStoreId may be read from this project.

Open question here is how this factors into modules and if/how we'd go about handling a disabled data-store module here.

Related Linear tickets, Github issues, and Community forum posts

https://linear.app/n8n/issue/ADO-3852

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

Copy link

codecov bot commented Aug 5, 2025

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
9366 4 9362 0
View the top 3 failed test(s) by shortest run time
JobProcessor should use manualExecutionService to process a job in "evaluation" mode
Stack Traces | 0.001s run time
TypeError: Cannot read properties of undefined (reading 'manager')
    at new DataStoreRepository (.../modules/data-store/data-store.repository.ts:17:37)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:104:16)
    at .../n8n/n8n/packages/@.../di/src/di.ts:97:17
    at Array.map (<anonymous>)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:91:36)
    at .../n8n/n8n/packages/@.../di/src/di.ts:97:17
    at Array.map (<anonymous>)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:91:36)
    at Object.getBase (.../n8n/n8n/packages/cli/src/workflow-execute-additional-data.ts:382:29)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at JobProcessor.processJob (.../n8n/n8n/packages/cli/src/scaling/job-processor.ts:120:26)
    at .../n8n/n8n/packages/cli/src/scaling/__tests__/job-processor.service.test.ts:97:4
eligibleModules should consider a module ineligible if it was disabled via env var
Stack Traces | 0.001s run time
Error: expect(received).toEqual(expected) // deep equality

- Expected  - 1
+ Received  + 0

  Array [
    "external-secrets",
-   "data-store",
  ]
    at Object.<anonymous> (.../n8n/n8n/packages/@.../modules/__tests__/module-registry.test.ts:23:57)
    at Promise.then.completed (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/utils.js:300:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/utils.js:233:10)
    at _callCircusTest (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/run.js:315:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/run.js:251:3)
    at _runTestsForDescribeBlock (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/run.js:125:9)
    at _runTestsForDescribeBlock (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/run.js:120:9)
    at run (.../n8n/node_modules/.pnpm/[email protected]..../jest-circus/build/run.js:70:3)
    at runAndTransformResultsToJestFormat (.../n8n/node_modules/.pnpm/[email protected]..../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../n8n/node_modules/.pnpm/[email protected]..../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../n8n/node_modules/.pnpm/[email protected]..../jest-runner/build/runTest.js:367:16)
    at runTest (.../n8n/node_modules/.pnpm/[email protected]..../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../n8n/node_modules/.pnpm/[email protected]..../jest-runner/build/testWorker.js:106:12)
JobProcessor should use manualExecutionService to process a job in "manual" mode
Stack Traces | 0.002s run time
TypeError: Cannot read properties of undefined (reading 'manager')
    at new DataStoreRepository (.../modules/data-store/data-store.repository.ts:17:37)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:104:16)
    at .../n8n/n8n/packages/@.../di/src/di.ts:97:17
    at Array.map (<anonymous>)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:91:36)
    at .../n8n/n8n/packages/@.../di/src/di.ts:97:17
    at Array.map (<anonymous>)
    at ContainerClass.get (.../n8n/n8n/packages/@.../di/src/di.ts:91:36)
    at Object.getBase (.../n8n/n8n/packages/cli/src/workflow-execute-additional-data.ts:382:29)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at JobProcessor.processJob (.../n8n/n8n/packages/cli/src/scaling/job-processor.ts:120:26)
    at .../n8n/n8n/packages/cli/src/scaling/__tests__/job-processor.service.test.ts:97:4

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Base automatically changed from ADO-3851 to master August 12, 2025 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team node/new Creation of an entirely new node
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants