Description
@eccenca/n8n-nodes-corporate-memory
An n8n community node for
eccenca Corporate Memory (CMEM).
Provides a Corporate Memory credential (OAuth2 client-credentials grant, via
n8n’s built-in OAuth2) and a Corporate Memory node with three resources:
Workflow (execute DataIntegration workflows), SPARQL (SELECT/ASK queries),
and Query Catalog (list and run saved, parameterized queries). See
tasks/spec.md and tasks/backlog.md.
Installation · Credentials ·
Operations · Development
Installation
In a self-hosted n8n: Settings → Community Nodes → Install and enter
@eccenca/n8n-nodes-corporate-memory. See the n8n docs on
installing community nodes.
Credentials
Create an eccenca Corporate Memory OAuth2 API credential. It extends n8n’s
built-in OAuth2 and uses the client-credentials grant, so n8n obtains, caches
and refreshes the access token for you (no interactive sign-in).
| Field | Notes |
| —– | —– |
| Client ID | OAuth2 client (e.g. the cmemc service-account client) |
| Client Secret | client secret of the (confidential) service-account client |
| Base URL | e.g. https://cmem.example.com (trailing slash optional) |
| OAuth Token URL | optional; leave empty to derive {Base URL}/auth/realms/cmem/protocol/openid-connect/token; set it for a non-default Keycloak realm or host |
| DataIntegration / DataPlatform Base URL | optional overrides; default to {Base URL}/dataintegration and {Base URL}/dataplatform |
> Field order follows n8n’s OAuth2 credential layout: the inherited fields (Client ID,
> Client Secret, plus Send Additional Body Properties and Allowed HTTP Request Domains)
> render first, then the CMEM-specific fields.
Use Test in the credential dialog to verify the token can be obtained and the
DataPlatform API is reachable.
> The resource-owner password grant is not offered: n8n’s built-in OAuth2
> supports only the authorizationCode, clientCredentials and pkce grants, and
> the client-credentials service-account flow covers the automation use case.
Operations
Resource: Workflow
Project and Workflow are searchable dropdowns populated from your instance.
- Execute — run a workflow synchronously (
POST /api/workflow/result/…), - Execute (Async) — start a workflow execution
- Select Query — run a SPARQL SELECT/ASK (
GET /proxy/default/sparql) and get - List Queries — list saved queries across the selected catalog(s); each item
- Run Report — execute a saved query by IRI with parameter substitutions
optionally with a payload. Pick the Payload content type (None / JSON / XML /
CSV) and the Result Format (JSON / XML / CSV / N-Triples) independently — they
need not match. A workflow with no variable output returns
{ executed: true, hasResult: false }; a JSON array result can be split into one
item per element.
(POST /api/workflow/executeAsync?output:type=…); returns { activityId, instanceId }.
Resource: SPARQL
one item per result row. Simplify returns just each variable’s value; off
returns the full binding object (type, value, datatype, language). Optional
default/named graph URIs.
Resource: Query Catalog
Queries live in one or more catalog graphs; a Catalog Graph dropdown (default
All Catalogs) scopes the picker, mirroring CMEM’s own catalog selector.
carries its source catalogGraph.
({{placeholder}} → value) and get the CSV result parsed into items
(GET /api/queries/reports/perform); toggle off to return the raw CSV string.
Development
Requires Node.js v22+. Tooling is provided by
@n8n/node-cli; a
Taskfile.yml (go-task) wraps the
lifecycle.
task deps # install dependencies
task dev # run a local n8n with the node hot-reloaded (http://localhost:5678)
task test # jest unit tests
task lint # n8n-node lint (verification-grade)
task build # compile + copy icons into dist/
task check # lint + test + build (the CI gates)
The equivalent npm scripts (npm run dev|test|lint|build) work too. Without
go-task, run the npm scripts directly.
Manual end-to-end check: task dev, add the Corporate Memory credential, run its
Test, then add a Corporate Memory node and execute a known workflow.
CI & publishing
.gitlab-ci.yml runs lint + test + build on merge requests and
branches, and publishes to npm (with provenance) on v* tags. Publishing needs an
NPM_TOKEN CI/CD variable; npm provenance becomes mandatory for community nodes
from 2026-05-01.
License
MIT.