Skip to content
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

refactor(core): Move all code related to onServerStarted into InternalHooks (no-changelog) #8500

Merged
merged 1 commit into from
Jan 31, 2024

Conversation

netroy
Copy link
Member

@netroy netroy commented Jan 30, 2024

Continue moving more code out of Server.ts

Review / Merge checklist

  • PR title and summary are descriptive
  • Tests included

@n8n-assistant n8n-assistant bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Jan 30, 2024
Copy link
Contributor

@ivov ivov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions, but nothing that should block this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Do we need to send this info to both identify and track calls? From the Rudderstack docs:

Once you make the identify call, the SDK persists the user information and passes it to the subsequent calls.

  1. Should we create a new telemetry method trackInstanceStarted that includes the gathering of diagnostic info, the identify call and the Instance started event? I think we only expose telemetry details in internal hooks when they need to be shared with audit logs.

  2. Looks like there's a mismatch between what's in the telemetry entry for Instance started and this payload?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Looks like it's been like this since the beginning.
  2. can you please rephrase?
  3. We need to so another PR to fix all these telemetry related code. I just wanted to cleanup Server.ts in this PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Ah I know, I was wondering if it's correct.
  2. Everything that's happening in this hook is all telemetry (gather diagnostic info, identify and track) so I would've encapsulated all this in a new method in the telemetry service. I wouldn't have done it if the telemetry payload is also needed to be sent to the event bus for audit logging in internal hooks, but we aren't doing that here.
  3. Def - please don't block on these questions. Just thought to raise them.

return await Promise.all([
this.telemetry.identify(info),
this.telemetry.track('Instance started', {
...info,
earliest_workflow_created: earliestWorkflowCreatedAt,
earliest_workflow_created: firstWorkflow?.createdAt,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could track creations in workflow statistics but we don't, so this is only the earliest surviving one. Maybe this should be renamed earliest_undeleted_workflow_created?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. but earliest_undeleted_workflow_created sounds too verbose, and also unlikely the data-point that we added this code for. We definitely need a better mechanism to know the first workflow that was created, irrespective of it's deleted.

Comment on lines +46 to +57
system_info: {
memory: 1024,
os: {
type: 'TempleOS',
version: '5.03',
},
cpus: {
count: 1,
model: 'MIPS R3000',
speed: 40000000,
},
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥

Copy link
Contributor

⚠️ Some Cypress E2E specs are failing, please fix them before merging

Copy link

cypress bot commented Jan 31, 2024

4 flaky tests on run #3968 ↗︎

0 339 5 0 Flakiness 4

Details:

🌳 🖥️ browsers:node18.12.0-chrome107 🤖 netroy 🗃️ e2e/*
Project: n8n Commit: 0739735248
Status: Passed Duration: 03:49 💡
Started: Jan 31, 2024 11:12 AM Ended: Jan 31, 2024 11:16 AM
Flakiness  24-ndv-paired-item.cy.ts • 1 flaky test

View Output Video

Test Artifacts
NDV > resolves expression with default item when input node is not parent, while still pairing items Test Replay Screenshots Video
Flakiness  5-ndv.cy.ts • 1 flaky test

View Output Video

Test Artifacts
NDV > should not retrieve remote options when required params throw errors Test Replay Screenshots Video
Flakiness  17-sharing.cy.ts • 1 flaky test

View Output Video

Test Artifacts
Sharing > should work for admin role on credentials created by others (also can share it with themselves) Test Replay Screenshots Video
Flakiness  28-debug.cy.ts • 1 flaky test

View Output Video

Test Artifacts
Debug > should be able to debug executions Test Replay Screenshots Video

Review all test suite changes for PR #8500 ↗︎

Copy link
Contributor

✅ All Cypress E2E specs passed

@netroy netroy merged commit 839dd96 into master Jan 31, 2024
34 checks passed
@netroy netroy deleted the refactor-onServerStarted branch January 31, 2024 12:29
@janober
Copy link
Member

janober commented Feb 2, 2024

Got released with n8n@1.27.2

andyjoyous added a commit to eyaljoyous/n8n that referenced this pull request Feb 9, 2024
* refactor(core): Replace promisify-d node calls with native promises (no-changelog) (n8n-io#8464)

* fix(editor): Send template id as a number in telemetry events (n8n-io#8484)

* refactor(editor): Prevent router.replace from computed property (no-changelog) (n8n-io#8489)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* feat(core): Remove `own` execution-process mode (n8n-io#8490)

* feat(editor): Implement loading and error states for dynamically loaded components in node parameter list (n8n-io#8477)

* fix(AwsS3 Node): Fix handling of bucket with dot in name (n8n-io#8475)

* refactor(core): Modernize credentials controllers and services (no-changelog) (n8n-io#8488)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>

* fix(core): Don't report executions that have been paused as failed to rudderstack and log streams (n8n-io#8501)

* fix: Properly iterate over credentials with expressions (n8n-io#8502)

* refactor(core): Move all code related to `onServerStarted` into `InternalHooks` (no-changelog) (n8n-io#8500)

* feat(editor): Send template id as string in all telemetry events (n8n-io#8498)

* fix(core): Handle possibly invalid `updatedAt` timestamps in source-control (n8n-io#8485)

* fix(core): Forward authorization header when on same domain (n8n-io#8507)

* fix(core): Improve handling of wrapped errors (n8n-io#8510)

* 🚀 Release 1.27.0 (n8n-io#8512)

Co-authored-by: ivov <ivov@users.noreply.github.com>

* ci: Skip running `postInstall` scripts for all packages except sqlite3 (no-changelog) (n8n-io#8514)

* ci: Fix DB tests (no-changelog) (n8n-io#8513)

* fix(core): Fix new graceful shutdown env being always overridden by deprecated env (n8n-io#8503)

* fix(HTTP Request Node): Support form data when using pagination (n8n-io#8497)

* fix(HTTP Request Node): Require parameter with filled name and value to avoid infinite loop (n8n-io#8454)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Elias Meire <elias@meire.dev>

* fix(Microsoft Excel 365 Node): Upsert append new rows at the end of used range, option to append at the end of selected range (n8n-io#8461)

* fix(Slack Node): Attachments fix (n8n-io#8471)

Co-authored-by: Elias Meire <elias@meire.dev>

* feat: Azure Open AI chat model & embeddings (n8n-io#8522)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* fix(core): Fix test runs of triggers that rely on static data (n8n-io#8524)

* ci: Replace `pnpm/action-setup` action with corepack (no-changelog) (n8n-io#8504)

* fix(MongoDB Node): Fix "Maximum call stack size exceeded" error on too many rows (n8n-io#8530)

* fix: Allow Date/Luxon objects and additional formats in DateTime validation (n8n-io#8525)

* fix(editor): Prune values that are not in the schema in the ResourceMapper component (n8n-io#8478)

* fix(core): Fix PermissionChecker.check, and add additional unit tests (n8n-io#8528)

* fix(core): Fix DropRoleMapping migration (n8n-io#8521)

* fix(core): Ensure AxiosError status always gets copied over to NodeApiError (n8n-io#8509)

* fix(Embeddings OpenAI Node): Fix dynamic models fetching (n8n-io#8533)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* fix(core): Fix workflow tagging failure due to unique constraint check (n8n-io#8505)

* ci: Fix release-create-pr.yml (no-changelog)

* fix(core): Upgrade nodemailer to address an exploit (n8n-io#8535)

* feat(RabbitMQ Trigger Node): Add options to configure assert of exchanges and queues (n8n-io#8430)

* feat(editor): Add delete and disable button to nodes on hover (n8n-io#8482)

* feat(Email Trigger (IMAP) Node): Upgrade mailparser (n8n-io#8539)

* refactor(core): Streamline flows in multi-main mode (no-changelog) (n8n-io#8446)

* fix: Remove ts-node from overrides and typeorm script (no-changelog) (n8n-io#8547)

* fix: Update BaseChatModel import checks for MistralAI compatibility (n8n-io#8527)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* docs: Add encryption key check to breaking changes list (n8n-io#8551)

* refactor(core): Lock `webhook` process out of multi-main setup (no-changelog) (n8n-io#8549)

* refactor(core): Continue breaking dependency cycles (no-changelog) (n8n-io#8545)

* fix(core): Use trx manager instead of repository for tags overwrite (n8n-io#8557)

* build: Fix outdated import to fix build (no-changelog) (n8n-io#8558)

* refactor(core): Couple of refactors on WorkflowRunner and ActiveExecutions (no-changelog) (n8n-io#8487)

* feat: Add assignment component with drag and drop to Set node (n8n-io#8283)

Co-authored-by: Giulio Andreini <andreini@netseven.it>

* ci: Update validate-n8n-pull-request-title action (no-changelog) (n8n-io#8553)

* fix(core): Use hostname from URL instead of Host header for SNI (n8n-io#8562)

* fix(Microsoft Outlook Node): Download executes more than once per incoming item (n8n-io#8566)

* 🚀 Release 1.28.0 (n8n-io#8569)

Co-authored-by: ivov <ivov@users.noreply.github.com>

* ci(core): Avoid slow bcrypt calls in tests (no-changelog) (n8n-io#8570)

* fix(core): Upgrade rudderstack sdk to address npm postInstall issues (n8n-io#8568)

* feat: Upgrade typeorm, sqlite3, and pg/pg-promise (n8n-io#8579)

* build: Add GitHub issue form for reporting bugs (n8n-io#8585)

* fix(Google Sheets Trigger Node): First non-header row is ignored when using on row added event (n8n-io#8580)

* fix(RSS Feed Trigger Node): Save last item's date instead of last execution date (n8n-io#8572)

* feat(core): Migrate to n8n's typeorm fork (n8n-io#8590)

* refactor: Add lint rule for unsafe property access with lodash get/set (no-changelog) (n8n-io#8587)

* fix(HTTP Request Node): Errorneous binary object without content-disposition response header (n8n-io#8583)

Co-authored-by: Marcus <marcus@n8n.io>

* fix(core): Custom workflow tool tweaks  (n8n-io#8561)

* Fixes imports and enables workers view

---------

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
Co-authored-by: oleg <me@olegivaniv.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Danny Martini <despair.blue@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ivov <ivov@users.noreply.github.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Andrea Ascari <dev.ascariandrea@gmail.com>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Cornelius Suermann <cornelius@n8n.io>
Co-authored-by: Bruno Inec <contact@sweenu.xyz>
Co-authored-by: Marcus <marcus@n8n.io>
andyjoyous added a commit to eyaljoyous/n8n that referenced this pull request Feb 10, 2024
* Andy/joy 277 mergeupdate n8n 128 (#54)

* refactor(core): Replace promisify-d node calls with native promises (no-changelog) (n8n-io#8464)

* fix(editor): Send template id as a number in telemetry events (n8n-io#8484)

* refactor(editor): Prevent router.replace from computed property (no-changelog) (n8n-io#8489)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* feat(core): Remove `own` execution-process mode (n8n-io#8490)

* feat(editor): Implement loading and error states for dynamically loaded components in node parameter list (n8n-io#8477)

* fix(AwsS3 Node): Fix handling of bucket with dot in name (n8n-io#8475)

* refactor(core): Modernize credentials controllers and services (no-changelog) (n8n-io#8488)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>

* fix(core): Don't report executions that have been paused as failed to rudderstack and log streams (n8n-io#8501)

* fix: Properly iterate over credentials with expressions (n8n-io#8502)

* refactor(core): Move all code related to `onServerStarted` into `InternalHooks` (no-changelog) (n8n-io#8500)

* feat(editor): Send template id as string in all telemetry events (n8n-io#8498)

* fix(core): Handle possibly invalid `updatedAt` timestamps in source-control (n8n-io#8485)

* fix(core): Forward authorization header when on same domain (n8n-io#8507)

* fix(core): Improve handling of wrapped errors (n8n-io#8510)

* 🚀 Release 1.27.0 (n8n-io#8512)

Co-authored-by: ivov <ivov@users.noreply.github.com>

* ci: Skip running `postInstall` scripts for all packages except sqlite3 (no-changelog) (n8n-io#8514)

* ci: Fix DB tests (no-changelog) (n8n-io#8513)

* fix(core): Fix new graceful shutdown env being always overridden by deprecated env (n8n-io#8503)

* fix(HTTP Request Node): Support form data when using pagination (n8n-io#8497)

* fix(HTTP Request Node): Require parameter with filled name and value to avoid infinite loop (n8n-io#8454)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Elias Meire <elias@meire.dev>

* fix(Microsoft Excel 365 Node): Upsert append new rows at the end of used range, option to append at the end of selected range (n8n-io#8461)

* fix(Slack Node): Attachments fix (n8n-io#8471)

Co-authored-by: Elias Meire <elias@meire.dev>

* feat: Azure Open AI chat model & embeddings (n8n-io#8522)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* fix(core): Fix test runs of triggers that rely on static data (n8n-io#8524)

* ci: Replace `pnpm/action-setup` action with corepack (no-changelog) (n8n-io#8504)

* fix(MongoDB Node): Fix "Maximum call stack size exceeded" error on too many rows (n8n-io#8530)

* fix: Allow Date/Luxon objects and additional formats in DateTime validation (n8n-io#8525)

* fix(editor): Prune values that are not in the schema in the ResourceMapper component (n8n-io#8478)

* fix(core): Fix PermissionChecker.check, and add additional unit tests (n8n-io#8528)

* fix(core): Fix DropRoleMapping migration (n8n-io#8521)

* fix(core): Ensure AxiosError status always gets copied over to NodeApiError (n8n-io#8509)

* fix(Embeddings OpenAI Node): Fix dynamic models fetching (n8n-io#8533)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* fix(core): Fix workflow tagging failure due to unique constraint check (n8n-io#8505)

* ci: Fix release-create-pr.yml (no-changelog)

* fix(core): Upgrade nodemailer to address an exploit (n8n-io#8535)

* feat(RabbitMQ Trigger Node): Add options to configure assert of exchanges and queues (n8n-io#8430)

* feat(editor): Add delete and disable button to nodes on hover (n8n-io#8482)

* feat(Email Trigger (IMAP) Node): Upgrade mailparser (n8n-io#8539)

* refactor(core): Streamline flows in multi-main mode (no-changelog) (n8n-io#8446)

* fix: Remove ts-node from overrides and typeorm script (no-changelog) (n8n-io#8547)

* fix: Update BaseChatModel import checks for MistralAI compatibility (n8n-io#8527)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>

* docs: Add encryption key check to breaking changes list (n8n-io#8551)

* refactor(core): Lock `webhook` process out of multi-main setup (no-changelog) (n8n-io#8549)

* refactor(core): Continue breaking dependency cycles (no-changelog) (n8n-io#8545)

* fix(core): Use trx manager instead of repository for tags overwrite (n8n-io#8557)

* build: Fix outdated import to fix build (no-changelog) (n8n-io#8558)

* refactor(core): Couple of refactors on WorkflowRunner and ActiveExecutions (no-changelog) (n8n-io#8487)

* feat: Add assignment component with drag and drop to Set node (n8n-io#8283)

Co-authored-by: Giulio Andreini <andreini@netseven.it>

* ci: Update validate-n8n-pull-request-title action (no-changelog) (n8n-io#8553)

* fix(core): Use hostname from URL instead of Host header for SNI (n8n-io#8562)

* fix(Microsoft Outlook Node): Download executes more than once per incoming item (n8n-io#8566)

* 🚀 Release 1.28.0 (n8n-io#8569)

Co-authored-by: ivov <ivov@users.noreply.github.com>

* ci(core): Avoid slow bcrypt calls in tests (no-changelog) (n8n-io#8570)

* fix(core): Upgrade rudderstack sdk to address npm postInstall issues (n8n-io#8568)

* feat: Upgrade typeorm, sqlite3, and pg/pg-promise (n8n-io#8579)

* build: Add GitHub issue form for reporting bugs (n8n-io#8585)

* fix(Google Sheets Trigger Node): First non-header row is ignored when using on row added event (n8n-io#8580)

* fix(RSS Feed Trigger Node): Save last item's date instead of last execution date (n8n-io#8572)

* feat(core): Migrate to n8n's typeorm fork (n8n-io#8590)

* refactor: Add lint rule for unsafe property access with lodash get/set (no-changelog) (n8n-io#8587)

* fix(HTTP Request Node): Errorneous binary object without content-disposition response header (n8n-io#8583)

Co-authored-by: Marcus <marcus@n8n.io>

* fix(core): Custom workflow tool tweaks  (n8n-io#8561)

* Fixes imports and enables workers view

---------

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
Co-authored-by: oleg <me@olegivaniv.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Danny Martini <despair.blue@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ivov <ivov@users.noreply.github.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Andrea Ascari <dev.ascariandrea@gmail.com>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Cornelius Suermann <cornelius@n8n.io>
Co-authored-by: Bruno Inec <contact@sweenu.xyz>
Co-authored-by: Marcus <marcus@n8n.io>

* Enables advanced permissions

* Fixes workflow statistics update errors

---------

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
Co-authored-by: oleg <me@olegivaniv.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Danny Martini <despair.blue@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ivov <ivov@users.noreply.github.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Andrea Ascari <dev.ascariandrea@gmail.com>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Cornelius Suermann <cornelius@n8n.io>
Co-authored-by: Bruno Inec <contact@sweenu.xyz>
Co-authored-by: Marcus <marcus@n8n.io>
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 Released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants