-
Notifications
You must be signed in to change notification settings - Fork 9.1k
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
feat(core): Initial workflow history API #7234
feat(core): Initial workflow history API #7234
Conversation
Great PR! Please pay attention to the following items before merging: Files matching
Files matching
Make sure to check off this list before asking for review. |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #7234 +/- ##
==========================================
+ Coverage 32.98% 33.00% +0.01%
==========================================
Files 3358 3359 +1
Lines 200231 200304 +73
Branches 21974 21990 +16
==========================================
+ Hits 66048 66111 +63
- Misses 133074 133084 +10
Partials 1109 1109
☔ View full report in Codecov by Sentry. |
packages/cli/src/workflows/workflowHistory/workflowHistory.controller.ee.ts
Outdated
Show resolved
Hide resolved
packages/cli/src/workflows/workflowHistory/workflowHistory.controller.ee.ts
Outdated
Show resolved
Hide resolved
private readonly sharedWorkflowRepository: SharedWorkflowRepository, | ||
) {} | ||
|
||
private async getSharedWorkflow(user: User, workflowId: string): Promise<SharedWorkflow | null> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can omit the inferrable return type. Same for others.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer to have them. I find having them there helps in case of refactors or similar changes.
): Promise<Array<Omit<WorkflowHistory, 'nodes' | 'connections'>>> { | ||
const sharedWorkflow = await this.getSharedWorkflow(user, workflowId); | ||
if (!sharedWorkflow) { | ||
throw new SharedWorkflowNotFoundError(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More details for debuggability? And logging? Same below for HistoryVersionNotFoundError
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are simply there so I'm not throwing HTTP errors from the service. I prefer not to mix in HTTP logic with my business logic if I'm doing a controller and service. I'm not quite sure what I'd add to these.
name: 'Start', | ||
parameters: {}, | ||
position: [-20, 260], | ||
type: 'n8n-nodes-base.start', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nit: Ideally let's not use deprecated nodes in tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, I just copy and pasted this from elsewhere since I just needed some kind of data for it.
packages/cli/src/workflows/workflowHistory/workflowHistory.controller.ee.ts
Outdated
Show resolved
Hide resolved
packages/cli/src/workflows/workflowHistory/workflowHistory.controller.ee.ts
Outdated
Show resolved
Hide resolved
const versions = await Promise.all( | ||
new Array(10) | ||
.fill(undefined) | ||
.map(async (_, i) => | ||
testDb.createWorkflowHistoryItem(workflow.id, { createdAt: new Date(Date.now() + i) }), | ||
), | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might come in handy to have a helper to create multiple versions.
…t-to-list-existing-workflow-versions
Passing run #2294 ↗︎
Details:
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. |
✅ All Cypress E2E specs passed |
@valya this will be an Enterprise feature ? |
# [1.9.0](https://github.com/n8n-io/n8n/compare/n8n@1.8.0...n8n@1.9.0) (2023-09-28) ### Bug Fixes * **Airtable Node:** Attachments field type fix ([#7227](#7227)) ([2af967c](2af967c)) * **core:** Change WorkflowHistory nodes/connections columns to be json ([#7282](#7282)) ([a80abad](a80abad)) * **core:** Fix binary data manager check on pruning ([#7251](#7251)) ([484035e](484035e)) * **core:** Fix missing execution ID in webhook-based workflow producing binary data ([#7244](#7244)) ([33991e9](33991e9)) * **core:** Handle filename* with quotes in Content-Disposition header ([#7229](#7229)) ([67b985f](67b985f)) * **core:** Make DNS resolution order configurable ([#7272](#7272)) ([5b3121c](5b3121c)) * **core:** Make senderId required for all command messages ([#7252](#7252)) ([4b01428](4b01428)) * **core:** Prevent executions from displaying Running status incorrectly ([#7261](#7261)) ([861cac5](861cac5)) * **core:** Use consistent timezone-aware timestamps in postgres ([#6948](#6948)) ([0132514](0132514)), closes [#2178](#2178) [#2810](#2810) [#3855](#3855) [#2813](#2813) * **editor:** Add debug feature docs link ([#7240](#7240)) ([4614e1e](4614e1e)) * **editor:** Fix SQL editor issue ([#7236](#7236)) ([647fc6c](647fc6c)) * **editor:** Ensure new Set node is on top of search list ([#7215](#7215)) ([2491ccf](2491ccf)) * **editor:** Forbid password reset when cloud account is limited in the number of users [7188](#7188) ([303bc8e](303bc8e)) * **HTTP Request Node:** Add suggestion how to fix '429 - too many requests' errors ([#7293](#7293)) ([0bc33b1](0bc33b1)) * **Item Lists Node:** Concatenate operation pairedItems fix ([#7286](#7286)) ([cde23a1](cde23a1)) * **Respond to Webhook Node:** JSON output from expression fix ([#7294](#7294)) ([8bc369d](8bc369d)) ### Features * Add onboarding flow ([#7212](#7212)) ([01e9340](01e9340)) * **core:** Add secrets provider reload and refactor ([#7277](#7277)) ([53a7502](53a7502)) * **core:** Add Tournament as the new default expression evaluator ([#6964](#6964)) ([bf74f09](bf74f09)) * **core:** Initial workflow history API ([#7234](#7234)) ([0083a9e](0083a9e)) * **core:** Introduce object store service ([#7225](#7225)) ([fa84545](fa84545)) * **editor:** Add user cloud ID to telemetry [#7232](#7232) ([60c152d](60c152d)) * **editor:** Rework banners framework and add email confirmation banner ([#7205](#7205)) ([b0e98b5](b0e98b5)) * **MISP Node:** Update credential to support HTTP Request node ([#7268](#7268)) ([e4c302c](e4c302c)) ### Performance Improvements * **core:** Skip unneeded calls on every pruning cycle ([#7260](#7260)) ([db01164](db01164)) Co-authored-by: netroy <netroy@users.noreply.github.com>
Got released with |
Github issue / Community forum post (link here to close automatically):