n8n/package.json
Arvin Ansari d9cf35cb56
feat(core): Add a one-page viewer for the activity log (no-changelog)
`pnpm inspect:activity` serves every column of `activity_event` on
127.0.0.1:5699 — paginated, sortable on any column, with a free-text filter
that also searches the JSON `data` column, so a run id or a failing node name
finds its entry without knowing which field holds it. Category and action get
their own dropdowns, listing what is actually in the table.

Standalone rather than a view in the editor UI, on purpose. An in-app page
would need a route, a store, an API client, a scope-gated endpoint, i18n
strings and tests — a lot of product surface for a table you want to eyeball
while working on it. This is one file, no build step and no dependency, and it
reads the database directly so what you see is what is stored.

Read-only in three ways that matter: the connection is opened with readOnly, so
a write is rejected by SQLite rather than by convention; every query is a
SELECT; and the sort column comes from an allowlist, because a column name
cannot be a bound parameter. Verified — a sort of `1; DROP TABLE
activity_event` falls back to id and leaves the table intact.

Bound to 127.0.0.1 only, and unauthenticated by design: it is a debug surface,
and the whole table including who did what in which project is served to
anything that can reach the port. Confirmed unreachable on the LAN address.

Verified in a browser against a seeded database: filters, header sorting, page
size and paging all drive correctly, the free-text search finds both failing
runs by their failing node name, and the console is clean.
2026-08-26 15:32:36 +02:00

250 lines
11 KiB
JSON

{
"name": "n8n-monorepo",
"version": "2.36.0",
"private": true,
"engines": {
"node": ">=24.0.0",
"pnpm": ">=10.22.0"
},
"packageManager": "pnpm@10.32.1",
"scripts": {
"prepare": "node scripts/prepare.mjs",
"preinstall": "node scripts/block-npm-install.js",
"build": "turbo run build",
"build:unchecked": "turbo run build:unchecked",
"build:n8n": "node scripts/build-n8n.mjs",
"build:deploy": "node scripts/build-n8n.mjs",
"build:docker": "node scripts/build-n8n.mjs && node scripts/dockerize-n8n.mjs",
"build:docker:coverage": "BUILD_WITH_COVERAGE=true node scripts/build-n8n.mjs && node scripts/dockerize-n8n.mjs",
"build:docker:scan": "node scripts/build-n8n.mjs && node scripts/dockerize-n8n.mjs && node scripts/scan-n8n-image.mjs",
"build:docker:smoke": "node scripts/smoke-n8n-image.mjs",
"build:docker:clean": "TURBO_FORCE=true node scripts/build-n8n.mjs && DOCKER_BUILD_NO_CACHE=true DOCKER_BUILD_BASE_IMAGE=true node scripts/dockerize-n8n.mjs",
"build:docker:test": "node scripts/build-n8n.mjs && node scripts/dockerize-n8n.mjs && turbo run test:container:standard --filter=n8n-playwright",
"typecheck": "turbo typecheck",
"dev": "node scripts/dev-command-removed-notice.mjs",
"dev:up": "node scripts/dev-up.mjs",
"dev:be": "turbo run dev --env-mode=loose --log-prefix=none --filter=n8n",
"dev:ai": "turbo run dev --concurrency=150 --env-mode=loose --filter=@n8n/n8n-nodes-langchain --filter=n8n --filter=n8n-core",
"dev:fe": "run-p start dev:fe:editor",
"dev:fe:editor": "turbo run dev --env-mode=loose --filter=n8n-editor-ui",
"dev:design-system": "turbo run dev --env-mode=loose --log-prefix=none --filter=@n8n/design-system",
"dev:e2e": "pnpm --filter=n8n-playwright dev --ui",
"dev-metrics:opt-in": "node scripts/dev-metrics/setup.mjs --enable",
"dev-metrics:status": "node scripts/dev-metrics/setup.mjs --status",
"dev-metrics:reset": "node scripts/dev-metrics/setup.mjs --reset",
"clean": "turbo run clean",
"session": "node scripts/cloud-session.mjs",
"reset": "node scripts/ensure-zx.mjs && zx scripts/reset.mjs",
"format": "turbo run format && node scripts/format.mjs",
"grind": "node scripts/grind.mjs",
"nathan": "node scripts/nathan.mjs",
"agent:setup": "node scripts/agent-setup.mjs",
"format:check": "turbo run format:check",
"lint": "turbo run lint",
"lint:styles": "turbo run lint:styles",
"lint:styles:fix": "turbo run lint:styles:fix",
"lint:affected": "turbo run lint --affected",
"lint:fix": "turbo run lint:fix",
"lint:ci": "turbo run lint lint:styles && pnpm boundaries:check && pnpm check:workspace-private-deps",
"boundaries": "turbo boundaries",
"boundaries:check": "node scripts/check-boundaries.mjs",
"boundaries:baseline": "node scripts/check-boundaries.mjs --write",
"sync:skill-links": "node scripts/sync-agent-skill-links.mjs",
"check:skill-links": "node scripts/sync-agent-skill-links.mjs --check",
"check:workspace-private-deps": "node scripts/check-workspace-private-deps.mjs",
"optimize-svg": "find ./packages -name '*.svg' ! -name 'pipedrive.svg' -print0 | xargs -0 -P16 -L20 npx svgo",
"setup-backend-module": "node scripts/ensure-zx.mjs && zx scripts/backend-module/setup.mjs",
"start": "node scripts/os-normalize.mjs --dir packages/cli/bin n8n",
"mutate": "node scripts/mutation-health/mutate.mjs",
"test": "turbo run test",
"test:ci": "turbo run test --continue --concurrency=1",
"test:ci:frontend": "turbo run test --continue --filter='./packages/frontend/**' --filter='./packages/modules/**'",
"test:ci:frontend:changed": "turbo run test:changed --continue --filter='./packages/frontend/**' --filter='./packages/modules/**'",
"test:ci:backend": "turbo run test --continue --concurrency=1 --filter='!./packages/frontend/**' --filter='!./packages/modules/**'",
"test:ci:backend:unit": "turbo run test:unit --continue --filter='!./packages/frontend/**' --filter='!./packages/modules/**'",
"test:ci:backend:integration": "turbo run test:integration --continue --concurrency=1 --filter='!./packages/frontend/**' --filter='!./packages/modules/**'",
"test:ci:backend:integration:changed": "turbo run test:integration:changed --continue --concurrency=1 --filter='!./packages/frontend/**' --filter='!./packages/modules/**'",
"test:affected": "turbo run test --affected --concurrency=1",
"seed:account": "turbo run build --filter=n8n-core && node scripts/instance-seeding/seed-anthropic-linear.mjs",
"inspect:activity": "node scripts/inspect-activity-log.mjs",
"db:schema:docs": "turbo run build --filter=@n8n/db && pnpm --filter=@n8n/db schema:docs",
"db:schema:check": "turbo run build --filter=@n8n/db && pnpm --filter=@n8n/db schema:check",
"db:schema:check:sqlite": "turbo run build --filter=@n8n/db && pnpm --filter=@n8n/db schema:check:sqlite",
"test:with:docker": "pnpm --filter=n8n-playwright test:container:standard",
"test:show:report": "pnpm --filter=n8n-playwright exec playwright show-report",
"watch": "turbo run watch --concurrency=64",
"webhook": "./packages/cli/bin/n8n webhook",
"worker": "./packages/cli/bin/n8n worker",
"dev:computer-use": "pnpm --filter @n8n/computer-use build && node packages/@n8n/computer-use/dist/cli.js serve",
"stop:computer-use": "lsof -ti :7655 | xargs kill 2>/dev/null; echo 'computer-use stopped'"
},
"devDependencies": {
"@babel/preset-env": "^7.26.0",
"@biomejs/biome": "^1.9.0",
"@dotenvx/dotenvx": "^1.40.0",
"@n8n/eslint-config": "workspace:*",
"@types/node": "*",
"@types/supertest": "^6.0.3",
"babel-plugin-transform-import-meta": "^2.3.2",
"cross-env": "^7.0.3",
"eslint": "catalog:",
"get-tsconfig": "catalog:",
"lefthook": "^1.7.15",
"nock": "^14.0.14",
"nodemon": "^3.0.1",
"npm-run-all2": "^7.0.2",
"p-limit": "^3.1.0",
"prettier": "catalog:",
"rimraf": "^5.0.1",
"stylelint": "catalog:",
"supertest": "^7.1.1",
"tsc-alias": "^1.8.10",
"tsc-watch": "^6.2.0",
"turbo": "2.9.15",
"typescript": "6.0.2",
"yaml": "catalog:",
"zx": "^8.8.5"
},
"pnpm": {
"onlyBuiltDependencies": [
"@confluentinc/kafka-javascript",
"@vscode/ripgrep",
"isolated-vm",
"sqlite3"
],
"overrides": {
"libphonenumber-js": "npm:empty-npm-package@1.0.0",
"@browserbasehq/stagehand": "npm:empty-npm-package@1.0.0",
"sharp": "npm:empty-npm-package@1.0.0",
"ast-types": "0.16.1",
"baseline-browser-mapping": "^2.10.31",
"@azure/identity": "4.13.0",
"@lezer/common": "^1.2.0",
"@mistralai/mistralai": "^1.10.0",
"@n8n/typeorm>@sentry/node": "catalog:sentry",
"@opentelemetry/api": "catalog:",
"@opentelemetry/core": "2.8.0",
"@opentelemetry/propagator-jaeger": "2.9.0",
"@types/node": "^20.17.50",
"chokidar": "4.0.3",
"esbuild": "catalog:",
"multer": "^2.2.0",
"prebuild-install": "7.1.3",
"pug": "^3.0.3",
"semver": "catalog:",
"tar-fs": "2.1.5",
"tslib": "^2.6.2",
"tsconfig-paths": "^4.2.0",
"vue-tsc": "catalog:frontend",
"gaxios": ">=7.1.1",
"google-gax": "^4.3.7",
"ws": ">=8.21.1",
"date-fns": "2.30.0",
"date-fns-tz": "2.0.0",
"form-data": "4.0.6",
"pdf-parse": "catalog:",
"pdfjs-dist": "catalog:",
"tmp": "0.2.7",
"nodemailer": "8.0.10",
"validator": "13.15.26",
"zod": "3.25.76",
"js-yaml": "4.3.1",
"katex": "0.18.2",
"body-parser": "2.3.0",
"glob@10": "10.5.0",
"glob@7": "7.2.3",
"jws@3": "3.2.2",
"jws@4": "4.0.1",
"qs": "catalog:",
"@smithy/config-resolver": ">=4.4.0",
"@rudderstack/rudder-sdk-node@<=3.0.0": "3.0.0",
"diff": "8.0.3",
"tar": "catalog:",
"ajv@6": "6.15.0",
"ajv@7": "8.20.0",
"ajv@8": "8.20.0",
"bn.js@4": "5.2.3",
"bn.js@5": "5.2.3",
"lodash": "4.18.1",
"minimatch@<=5.1.8": "5.1.8",
"minimatch@10": "10.2.3",
"@hono/node-server": "1.19.15",
"follow-redirects": "1.16.0",
"express-rate-limit": "8.2.2",
"underscore": "1.13.8",
"flatted": "3.4.2",
"handlebars": "4.7.9",
"path-to-regexp": "8.4.0",
"path-to-regexp@<0.1.13": "0.1.13",
"picomatch@2": "2.3.2",
"picomatch@4": "4.0.4",
"avsc": "5.7.9",
"brace-expansion@<2.1.4": "2.1.4",
"@xmldom/xmldom": "0.8.14",
"yaml@<=2.8.3": "2.8.3",
"axios": "catalog:",
"fast-xml-builder": "1.2.1",
"fast-xml-parser": "5.7.2",
"postcss@<=8.5.22": "8.5.23",
"@anthropic-ai/sdk@<=0.91.1": "0.91.1",
"uuid@<=13.0.1": "13.0.1",
"fast-uri": "3.1.5",
"cjs-module-lexer@<2.2.0": "2.2.0",
"protobufjs": "7.6.5",
"shell-quote": "1.9.0",
"adm-zip": "0.6.0",
"ip-address@10": "10.3.1",
"brace-expansion@5": "5.0.9",
"@tootallnate/once@2": "2.0.1",
"@vue/server-renderer@3.5.26": "3.5.40",
"@vue/shared@3.5.26": "3.5.40",
"@opentelemetry/exporter-prometheus@<=0.217.0": "0.217.0",
"@opentelemetry/sdk-node@<=0.217.0": "0.217.0",
"langsmith": "0.6.0",
"hono": "4.12.34",
"@tiptap/core": "catalog:",
"pg": "catalog:",
"file-type": "catalog:",
"linkify-it@<=5.0.1": "5.0.2",
"highlight.js@11": "catalog:frontend",
"jose@<6.2.9": "6.2.9",
"node-rsa": "2.0.0",
"@turbo/darwin-64@<=2.9.18": "2.9.18",
"@turbo/linux-64@<=2.9.18": "2.9.18",
"@turbo/windows-64@<=2.9.18": "2.9.18",
"ibm-cloud-sdk-core": "^5.5.0",
"undici@5": "catalog:undici-v6",
"undici@6": "catalog:undici-v6",
"undici@7": "catalog:undici-v7",
"node-gyp>undici": "catalog:undici-v7",
"@babel/traverse": "^7.23.2",
"@vitest/browser@<4.1.10": "4.1.10",
"immutable": "5.1.8",
"nanoid@<3.3.18": "catalog:",
"@zone-eu/mailsplit@<5.4.15": "5.4.15",
"strnum@<2.4.2": "2.4.2"
},
"patchedDependencies": {
"axios": "patches/axios.patch",
"bull@4.16.4": "patches/bull@4.16.4.patch",
"pdfjs-dist@5.4.296": "patches/pdfjs-dist@5.4.296.patch",
"pkce-challenge@5.0.0": "patches/pkce-challenge@5.0.0.patch",
"@types/express-serve-static-core@5.0.6": "patches/@types__express-serve-static-core@5.0.6.patch",
"@types/ws@8.18.1": "patches/@types__ws@8.18.1.patch",
"vue-tsc@2.2.8": "patches/vue-tsc@2.2.8.patch",
"element-plus@2.4.3": "patches/element-plus@2.4.3.patch",
"ics": "patches/ics.patch",
"minifaker": "patches/minifaker.patch",
"z-vue-scan": "patches/z-vue-scan.patch",
"@lezer/highlight": "patches/@lezer__highlight.patch",
"v-code-diff": "patches/v-code-diff.patch",
"vuedraggable@4.1.0": "patches/vuedraggable@4.1.0.patch",
"assert@2.1.0": "patches/assert@2.1.0.patch",
"lodash@4.18.1": "patches/lodash@4.18.1.patch",
"@langchain/openai@1.4.4": "patches/@langchain__openai@1.4.4.patch",
"@langchain/google-common@2.1.24": "patches/@langchain__google-common@2.1.24.patch",
"@confluentinc/kafka-javascript@1.9.1": "patches/@confluentinc__kafka-javascript@1.9.1.patch"
}
}
}