Skip to content

Feat/n8n v2 docs#188

Merged
lookinway merged 37 commits intomainfrom
feat/n8n-v2-docs
Apr 7, 2026
Merged

Feat/n8n v2 docs#188
lookinway merged 37 commits intomainfrom
feat/n8n-v2-docs

Conversation

@lookinway
Copy link
Copy Markdown
Collaborator

No description provided.

lookinway added 30 commits April 3, 2026 00:11
- n8n community node v2.0.0 with full v1 backward compatibility
  - 18 resources, 60+ operations, Pachca Trigger with auto-webhook
  - VersionedNodeType pattern (V1/V2), SharedRouter, Simplify, pagination
  - Unit tests (309), CI workflow with version check and npm publish
  - README, CHANGELOG, DEVELOPMENT, CONTRIBUTORS docs
- English OpenAPI overlay (openapi.en.yaml) with apply/validate scripts
- n8n docs on dev.pachca.com: setup, resources, trigger, workflows,
  advanced, migration, troubleshooting (8 pages)
- New n8n screenshots and workflow examples
- C# SDK: improved examples structure
- Regenerated SDKs (TypeSpec changes)
- turbo.json: generate-n8n, overlay tasks
- Fix do-while + continue retry bug in makeApiRequestAllPages (inner for-loop)
- Add PachcaTrigger node with webhook signature verification, IP allowlist, replay protection
- Add credentials fields: signingSecret, webhookAllowedIps, botId
- Add resolveBotId for automatic bot detection via token/info API
- Add sanitizeBaseUrl with protocol validation
- Add 25 error-path tests covering retries, pagination, validation errors
- Improve generator: better field descriptions, display names, Content-Type handling
- Various V2 description fixes across all resources
n8n fixes:
- Fix filename sanitization: filter control chars + null bytes, truncate to 255
- Fix resolveResourceLocator: throw on null/undefined/empty values
- Fix splitAndValidateCommaList: reject floats in int mode (Number.isInteger)
- Fix replay protection: reject far-future timestamps (>1min), not just old

n8n tests (3 new files, 77 tests):
- trigger.test.ts: event filtering, signature verification, IP allowlist, replay protection
- webhook-lifecycle.test.ts: checkExists, create, delete lifecycle methods
- load-options.test.ts: formatUserName, searchChats, searchUsers, searchEntities, getCustomProperties

SDK:
- Remove hardcoded versions from SDK READMEs and docs (use latest/latest.release)
- Fix SDK CI: skip commit/tag/release when no SDK files changed (any_changed output)
- trigger.mdx: add IP allowlist, replay protection, signature header details
- setup.mdx: add Webhook Allowed IPs credential field
- CHANGELOG.md: add Security and Bug Fixes sections to 2.0.0
- README.md: add Webhook Allowed IPs to credentials table
- Update pagination to use cursor-based approach with next_page detection
- Regenerate all SDK clients (TypeScript, Python, Go, Swift, C#, Kotlin)
- Update CLI list commands with cursor pagination support
- Update n8n node with pagination fixes and new features
- Add array-no-brackets and date-format generator tests
- Update docs and SDK guides with pagination details
…ults

- Remove FORM_TEMPLATES and template builder mode from n8n node (reviewer requirement)
- Add CLI changelog entry for 2026.4.1 (avatars, sorting)
- Fix CLI sort/order defaults for chats and messages list
- Regenerate docs (updates.md, llms-full.txt)
- turbo.json: add ^build to generate-n8n to prevent parser race condition
- sdk.yml: add concurrency group, --provenance for TS SDK, pin bun 1.3.4
- n8n.yml: add concurrency group, pin bun 1.3.4
- check.yml: add concurrency (cancel-in-progress for PRs)
- deploy.yml: add concurrency (no cancel for production deploys)
- gitlab.yml: add concurrency (no cancel for sync)
- Remove manual version check, auto-calculate patch from npm registry
- Base version (major.minor) stays in package.json for manual control
- Add --provenance for supply chain security
- Add E409 handler for publish idempotency
- Fix concurrency: cancel-in-progress only for PRs
- Auto-calculate patch from npm registry (base major.minor from package.json)
- Remove package.json/changelog.json version match check
- changelog.json stays for manual release notes, no longer blocks publish
- Add E409 handler for publish idempotency
- Add change detection to skip publish when only tests/scripts/docs change
- Auto-increment patch version from npm (base major.minor from package.json)
- Gate version/build/scan/publish/release steps on real source changes
- Add fetch-depth: 0 for git history in publish job
isolated-vm (transitive dep of n8n-workflow) fails to compile on CI.
It is only needed at n8n runtime, not for build/check/test.
Setting trustedDependencies to empty array prevents all lifecycle
scripts from running during bun install.
trustedDependencies: [] blocked all postinstall scripts including
esbuild (platform binary), sharp (image processing), and
unrs-resolver (eslint). Whitelist these while still blocking
isolated-vm native compilation.
generateEnumOptions used its own title-case logic which produced 'Id'
instead of 'ID'. n8n linter requires uppercase abbreviations.
Now reuses formatDisplayName which already handles Id→ID, Url→URL.
n8n-node build detects npm as package manager and runs npx tsc,
which fails because typescript is not hoisted to root node_modules.
Direct bun run tsc resolves tsc from the local n8n workspace.
n8n-node build also copies *.png and *.svg into dist/.
Since we replaced it with direct tsc, need to copy assets manually
for scan-community-package and npm publish.
Avoid copying e2e/screenshots into dist. Only icons from nodes/,
icons/, and credentials/ directories are needed for the npm package.
lookinway and others added 7 commits April 7, 2026 00:08
Auto-versioning from npm will assign 2026.4.0 (no 2026.4.x published
yet). Changelog had 2026.4.1 which would mismatch.
Python maps date-time to `datetime` with fromisoformat/isoformat serialization.
Kotlin maps date-time to `OffsetDateTime` with custom KSerializer.
Swift/C# simplified to treat date-only as plain strings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ry params

Add @serializable(with = OffsetDateTimeSerializer::class) to union variant
datetime fields. Add OffsetDateTime import to Client.kt. Convert datetime
query params to string via .toString().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Python: datetime, Kotlin: OffsetDateTime, C#: DateTimeOffset,
Go: time.Time, Swift/TypeScript: String.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Step 0 fetches a chat and prints created_at/last_message_at with their
runtime types across all 6 SDK examples.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lookinway lookinway merged commit bc884ca into main Apr 7, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants