Skip to content

feat: add n8n APort verification node#111

Open
onlyoasis wants to merge 1 commit into
aporthq:mainfrom
onlyoasis:feat/n8n-aport-verification-node
Open

feat: add n8n APort verification node#111
onlyoasis wants to merge 1 commit into
aporthq:mainfrom
onlyoasis:feat/n8n-aport-verification-node

Conversation

@onlyoasis
Copy link
Copy Markdown

@onlyoasis onlyoasis commented May 17, 2026

Summary

  • Adds a publishable n8n-nodes-aport community-node package under examples/agent-frameworks/n8n.
  • Adds an APort Verify node that verifies a passport against a policy pack and routes items to Approved, Denied, or Error outputs.
  • Adds APort API credentials, input/JSON/key-value context modes, an importable workflow example, and zero-dependency Node.js tests.

Verification

  • npm test
  • npm pack --dry-run
  • Parsed package.json and workflows/aport-verify-routing.json with Node.js JSON.parse

Refs #4 and #31.

Bounty note: this targets the n8n custom node / policy-check scopes in #4 and #31. I am not asking for duplicate payout if the maintainers treat those issues as overlapping. Preferred payout details can be shared privately by @onlyoasis if accepted.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8e8b29de47

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +81 to +83
const decision = String(getDecisionValue(response)).toLowerCase();
return ["allow", "allowed", "approve", "approved", "pass", "passed"].includes(
decision
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Route decision-object approvals as approved

When the APort API returns the decision shape used elsewhere in this repo (tools/cli/src/index.js reads result.data?.decision || result.decision and then decision.allow), this code converts the whole { allow: true, ... } object to "[object Object]", so successful verifications are sent to the Denied output. Please handle response.decision.allow === true (and the nested data.decision variant if this node receives the wrapped response) before stringifying the decision value.

Useful? React with 👍 / 👎.

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.

1 participant