Releases: artus-engineering/n8n-nodes-loki
Release list
1.1.2
1.1.1
1.1.0
What's new
Workflow-level logging switch
The Loki node has a second operation, Set Workflow Logging, that turns Loki logging on or off for
every Loki node downstream — including nodes inside sub-workflows — without touching each one.
Drop a Loki node after your trigger, set Operation to Set Workflow Logging, and turn
Logging Enabled off to mute. Muted Send Log nodes pass their input items through unchanged and
never call Loki. The switch accepts an expression (={{ $vars.LOKI_ENABLED }}), so an environment
variable can mute a workflow without editing it; anything other than false leaves logging on.
The control node also carries workflow-wide defaults: Labels, and under Options
Additional Headers, Structured Metadata and Timeout. A same-name field on a Send Log
node always wins over the workflow default, and the automatic job / workflow / workflow_id
labels and execution_id metadata are unchanged.
Sub-workflows inherit the switch
A control node writes its resolved settings onto every item it passes through, under _lokiLogging.
Execute Sub-workflow carries those items into the sub-workflow, where Loki nodes read them back —
from their own input item, or from the Execute Sub-workflow Trigger if nodes in between rebuilt the
items. Off stays off: a sub-workflow can add labels, headers, metadata and a timeout on top, but
cannot re-enable logging its caller muted, and a control node inside a sub-workflow folds inherited
settings into what it propagates further down, so nesting works to any depth.
Two things to know:
- The
Execute Sub-workflow Triggermust let the field through. With Input data mode set to
Define using fields below, n8n drops everything outside the declared schema — use
Accept all data, or declare a_lokiLoggingfield. - A Loki node used as an AI tool receives no items from the main flow, so the switch does not
reach it. Disable those nodes on the canvas instead.
Set the new Propagate to Sub-Workflows option (Options, on by default) to off if you would rather
leave your items untouched; the switch then applies inside the current workflow only.
Other changes
Set Workflow Loggingdoes not require a Loki credential — the credential is only requested for
Send Log, and a mutedSend Lognode no longer fetches it either.- Workflow-wide
LabelsandStructured Metadataexpressions resolve per item;Logging Enabled,
TimeoutandAdditional Headersresolve once against the first item, matching how the node's own
equivalents already behaved. - Several control nodes on one path merge nearest-last, so the one closest to the
Send Lognode
wins on colliding keys. - A failing expression on a control node now surfaces as a Loki node error naming the control node it
came from, instead of a bare expression error. - A
Timeoutthat an expression resolves to a numeric string is honoured instead of silently falling
back to the default.
Upgrading
No breaking changes — existing Send Log nodes keep working with no edits, and logging stays on
until a Set Workflow Logging node says otherwise. The one new visible behaviour is the
_lokiLogging key a control node adds to items it passes through.
Full Changelog: 1.0.0...1.1.0
1.0.0
1.0.0
First stable release of @artus-engineering/n8n-nodes-loki. The node sends log lines to Grafana Loki and tags every entry with n8n context so you do not have to wire it by hand.
Automatic n8n context
Every push now includes:
| Field | Where it lands |
|---|---|
job (n8n) |
Stream label |
workflow |
Stream label |
workflow_id |
Stream label |
execution_id |
Structured metadata |
| Entry timestamp | Loki value tuple ([ts, line]) — already indexed, do not add it as a label or JSON field |
A user-defined label or metadata key of the same name wins. Extra labels and JSON fields stay for the actual log payload.
Node
- Labels and JSON Fields use the same Edit Fields–style assignment list as n8n’s Set node (typed rows, expressions, drag-and-drop).
- Text or JSON log lines, including raw JSON or fields assembled without
JSON.stringify. - Optional structured metadata, custom headers, batching, and ISO/epoch timestamps.
- Credential: none / basic / bearer / header auth, tenant ID (
X-Scope-OrgID), custom headers, TLS toggle.
Full changelog
0.2.1
0.2.0
What's Changed
- automatic log data by @JonasScholl in #1
New Contributors
- @JonasScholl made their first contribution in #1
Full Changelog: 0.1.1...0.2.0
0.1.1
Labels and JSON Fields now use the same Edit Fields–style assignment list as n8n’s built-in Set node: typed name/value rows, expressions, and drag-and-drop from incoming items.
Existing workflows stay on node version 1 and keep working. New or upgraded nodes use version 2.
The Public API and MCP clients can send labels/fields as:
{ "assignments": [{ "name": "job", "value": "n8n", "type": "string" }] }- the previous fixedCollection wrappers (
label/field/values/ …) - a flat
{ "job": "n8n" }object
Object and array assignment values are serialized as JSON instead of[object Object].
Full Changelog: 0.1.0...0.1.1