tenebrae-solo

n8n community node to screen AI prompts and text for security threats with Tenebrae Solo (POST /api/inspect) before they reach your AI step.

Package Information

Released: 3 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.0
Author: Tenebrae Security

Documentation

n8n-nodes-tenebrae-solo

An n8n community node for Tenebrae Solo — the hosted AI security API. Add one node to any workflow to screen prompts and text for AI security threats (prompt injection, jailbreaks, and more) before they reach your AI/LLM step, and gate the workflow on the verdict.

We run the security layer — you add one node to your workflow.

Installation · Credentials · Operation · Gating your workflow · Response · Publishing status

Installation

From the n8n GUI (recommended — closest to one-click)

  1. In n8n, go to Settings → Community nodes.
  2. Click Install.
  3. Enter the npm package name n8n-nodes-tenebrae-solo and confirm you understand the risks of community nodes.
  4. Click Install. The Tenebrae Solo node now appears in the node panel.

GUI install requires self-hosted n8n (or an n8n instance where the owner has enabled community-node installs). See the n8n docs.

Manual / npm

# inside your n8n custom-extensions folder (~/.n8n/nodes by default)
npm install n8n-nodes-tenebrae-solo

Restart n8n after installing.

Credentials

Create a Tenebrae Solo API credential:

Field Value
API Key Your solo_ API key (48 hex chars, starts with solo_). Generate it in the Tenebrae Solo dashboard under Setup.
Base URL https://solo.tenebraesecurity.com (default). Change only for a self-hosted/staging deployment.

n8n sends the key as Authorization: Bearer <your solo_ key>. Saving the credential runs a connection test against POST /api/inspect, so an invalid key is caught immediately.

Operation

The node exposes a single operation:

Screen Text (inspect) — sends your text to POST /api/inspect and returns the security verdict.

Parameter Required Description
Text Yes The prompt/text to screen. Max 32768 bytes (32 KB).
Workflow Name No Label stored with the inspection to group activity in your dashboard.
Options → Context (JSON) No Optional JSON object passed through as request context.
Options → Error on Block No When on, the node fails on a block verdict, stopping the workflow before the AI step.

Gating your workflow

Place the Tenebrae Solo node before your AI/LLM node. Two ways to gate:

  • Simplest — Error on Block: enable Options → Error on Block. A blocked input throws, so the AI node never runs. (Connect an error branch if you want to handle it.)
  • Explicit branch — IF node: leave Error on Block off and add an IF node after Tenebrae Solo. Continue to the AI step only when {{ $json.blocked }} is not true (or branch on {{ $json.action }} — allow / warn / block).
Trigger ──▶ Tenebrae Solo ──▶ IF ($json.blocked is not true) ──▶ AI / LLM step
                                        └── (blocked) ─────────▶ stop / alert

Response

POST /api/inspect returns (the node emits this as the item JSON):

{
  "safe": true,
  "action": "allow",
  "blocked": false,
  "message": "Plain-English explanation",
  "detail": { "threat": "…", "severity": "Low", "confidence": 0.0 },
  "latency_ms": 0
}
  • action — allow | warn | block.
  • blocked — true only on a block verdict; gate on this.
  • Tenebrae Solo fails open: if its detection engine errors, /api/inspect returns an allow verdict rather than blocking your workflow — availability is preserved.

Errors surfaced by the node

HTTP Meaning
401 Invalid solo_ API key.
400 Bad input (empty, non-string, or over 32 KB).
429 Rate limit or monthly quota exceeded (Retry-After surfaced when known).
503 Tenebrae Solo database error.

Enable Continue On Fail on the node to route errors to the output instead of stopping the workflow.

Compatibility

  • Requires n8n with n8nNodesApiVersion: 1 and Node.js >= 20.15.
  • No runtime dependencies (calls the Tenebrae Solo HTTP API directly).

Build from source

npm install
npm run build      # compiles TS + copies icons into dist/ via @n8n/node-cli
npm run lint       # n8n community-node lint (strict)

Publishing & verification status

  • Ships in this repo (buildable now): the full community-node source — credential, node, icons, package.json with the n8n block, README. Any n8n user can install it via Settings → Community nodes once it is published to npm.
  • Requires owner external action to publish:
    1. Publish to npm as n8n-nodes-tenebrae-solo (public). Per n8n's rules, from May 1, 2026 nodes submitted for verification must be published via GitHub Actions with npm provenance — not from a local machine.
    2. Submit for verification to appear as a verified node in n8n's in-app registry (n8n review; verified nodes may have no runtime dependencies — this package has none). See the n8n Submit community nodes guide.

Until then, users install by npm package name (GUI or npm install) — verification only adds the in-app "verified" listing and search.

License

MIT © J & M International Group LLC (d/b/a Tenebrae Security). This n8n integration package is a thin client of the public POST /api/inspect HTTP endpoint; it contains no Tenebrae Solo product source. The Tenebrae Solo service itself remains proprietary.

Discussion