Package Information
Downloads: 5 weekly / 130 monthly
Latest Version: 1.0.0
Author: NeoNetwork
Documentation
n8n-nodes-neologger
n8n community nodes for NeoLogger:
- NeoLogger Trigger - subscribe to a NeoLogger Broadcaster over WebSocket and start workflows on each matching log document. Filtering happens server-side in the broadcaster.
- NeoLogger Push - POST a log document to NeoLogger Ingress (
/api/v1/push/{endpoint}) from a workflow.
Topology
Spigot/Velocity ---> Ingress ---> Redis ---> Broadcaster ---> n8n Trigger ---> Workflow
^ |
+---------------------- n8n Push --------------------------+
Install
In a self-hosted n8n instance:
cd ~/.n8n/custom
npm install n8n-nodes-neologger
Or build locally:
git clone <this repo>
cd n8n-nodes-neologger
npm install
npm run build
npm link
cd ~/.n8n
npm link n8n-nodes-neologger
Credentials
NeoLogger API
Used by NeoLogger Push.
| Field | Notes |
|---|---|
| Base URL | Origin only, e.g. https://ingress.example.com. |
| API Key | The api_key from the matching entry in Ingress endpoints.json. Sent as Authorization: Bearer .... |
| Allow Insecure TLS | Local development only. |
NeoLogger Broadcaster
Used by NeoLogger Trigger.
| Field | Notes |
|---|---|
| WebSocket URL | Full URL to the broadcaster, e.g. wss://broadcaster.example.com/v1/stream. |
| Auth Token | Must match the broadcaster auth_token in its config.ini. |
| Auth Method | query (?token=...) or header (Authorization: Bearer ...). |
| Allow Insecure TLS | Local development only. |
NeoLogger Trigger
The trigger opens a WebSocket to the broadcaster, performs the protocol
handshake, then sends a single subscribe frame containing the channel and
filter you configure. Reconnection uses exponential backoff up to 30s.
Options
| Field | Description |
|---|---|
| Channel | Channel name from the broadcaster's channels.json. |
| Use Raw Filter JSON | Toggle to switch between the structured filter form and a free-form JSON object. |
| Filter (collection) | Structured fields that are serialized into the broadcaster's filter DSL. |
| Reconnect Backoff (ms) | Initial reconnect delay (capped at 30s). |
| Include Connection Metadata | Wraps each emitted item as { meta, document } with channel, session id, and receivedAt. |
Filter fields
Each structured field maps directly to the broadcaster filter DSL. Comma-separated lists become JSON arrays.
| n8n field | Broadcaster JSON | Matches against |
|---|---|---|
| Module ID | moduleId |
module.id |
| Module Version | moduleVersion |
module.version |
| Source Name | sourceName |
source.name |
| Source Session ID | sourceSessionId |
source.session_id |
| Event Name | eventName |
event.event |
| Event Name Regex | eventNameRegex |
event.event (regex) |
| Exists Paths | exists |
dot-paths that must exist |
| Equals (JSON Object) | equals |
dot-path -> scalar equality |
| JMESPath | jmespath |
full document, must be truthy |
Decoupling from new modules
The trigger never enumerates module ids in code. Adding a new logger module
only matters to workflows whose filter mentions that module id or one of its
event-specific fields. The package itself does not need a release.
NeoLogger Push
POSTs a JSON document to NeoLogger Ingress.
Body modes
- Wrap Event (default): provide just the inner
eventJSON; the node
generates_id(ULID-style),unique_id(UUIDv4),timings.generated,timings.client_queue, and minimalmoduleandsourceblocks. The
generatedsource.typedefaults ton8nso these documents are easy to
distinguish from agent-produced ones in workflows. - Full Document: pass the entire envelope yourself. Use this when you need
to mirror the exact shape produced byNeoLogger.sendLogin the Java agents.
Options
| Field | Description |
|---|---|
| Endpoint Name | The {endpoint} segment in /api/v1/push/{endpoint}. |
| Body Mode | Wrap Event or Full Document. |
| Event Body / Full Document | JSON expression. Defaults to {{ $json }}. |
| Module ID, Module Version | Wrap Event only. |
| Source Name, Source Type | Wrap Event only. |
| Timeout (ms) | HTTP timeout. |
| Continue on Fail | Emit error responses as items instead of failing the node. |
Durability and scaling caveats
- The broadcaster is built on Redis pub/sub, which is best-effort. If the
trigger is offline, messages from that window are lost. - Multiple broadcaster replicas subscribing to the same Redis channel will each
push the same message, so each n8n trigger connected to a different replica
will receive duplicates. Run one broadcaster per channel, or migrate to a
durable transport before scaling out. - The trigger's
Use Raw Filter JSONmode is the safest way to use new filter
features added by the broadcaster without waiting for a node update.