{"_id":"@benheidenreich/n8n-nodes-docuware","_rev":"4-4837a7cf23785fbe159248d48df22a4e","name":"@benheidenreich/n8n-nodes-docuware","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@benheidenreich/n8n-nodes-docuware","version":"0.1.0","keywords":["n8n-community-node-package","docuware","dms","document-management","archive"],"author":{"name":"Benjamin Heidenreich","email":"ben.heidenreich.mail+n8n@googlemail.com"},"license":"MIT","_id":"@benheidenreich/n8n-nodes-docuware@0.1.0","maintainers":[{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"}],"homepage":"https://github.com/benheidenreich/n8n-nodes-docuware","bugs":{"url":"https://github.com/benheidenreich/n8n-nodes-docuware/issues"},"n8n":{"nodes":["dist/nodes/DocuWare/DocuWare.node.js"],"credentials":["dist/credentials/DocuWareApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"601bd739e6686515d3fd519d1da453c94a07e271","tarball":"https://registry.npmjs.org/@benheidenreich/n8n-nodes-docuware/-/n8n-nodes-docuware-0.1.0.tgz","fileCount":10,"integrity":"sha512-mqzR6QK4ktqkvRg4zLs5UmU/h7GZsnN1M1JJcJnSAVkAW/mnXBIi7wbhADIkTNkHp1oUvQB0yHPuwSTMV1/2YA==","signatures":[{"sig":"MEYCIQDQbraY+MeBfima08voU0TxbG/aRgroIEXuBkDqgIpKBQIhAN0zP53v3acrGEZ6pUxHGqE+9SnczLIHZbfKiYfKOCOl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benheidenreich%2fn8n-nodes-docuware@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68471},"main":"index.js","engines":{"node":">=18.10"},"gitHead":"4a257d7f97097adb5d52c0fd33d245b8ee3be854","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && node scripts/copy-assets.js","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build && npm run lint"},"_npmUser":{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"},"repository":{"url":"git+https://github.com/benheidenreich/n8n-nodes-docuware.git","type":"git"},"_npmVersion":"12.0.1","description":"n8n community node for DocuWare document management: upload, search, update index fields and delete documents in any file cabinet","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","typescript":"^5.5.0","@types/node":"^20.14.0","n8n-workflow":"*","@typescript-eslint/parser":"^7.15.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-docuware_0.1.0_1784291992312_0.6617411098929848","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@benheidenreich/n8n-nodes-docuware","version":"0.1.1","keywords":["n8n-community-node-package","docuware","dms","document-management","archive"],"author":{"name":"Benjamin Heidenreich","email":"ben.heidenreich.mail+n8n@googlemail.com"},"license":"MIT","_id":"@benheidenreich/n8n-nodes-docuware@0.1.1","maintainers":[{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"}],"homepage":"https://github.com/benheidenreich/n8n-nodes-docuware","bugs":{"url":"https://github.com/benheidenreich/n8n-nodes-docuware/issues"},"n8n":{"nodes":["dist/nodes/DocuWare/DocuWare.node.js"],"credentials":["dist/credentials/DocuWareApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"6d255ac2afee086ef95ce340182abbe6c8260433","tarball":"https://registry.npmjs.org/@benheidenreich/n8n-nodes-docuware/-/n8n-nodes-docuware-0.1.1.tgz","fileCount":10,"integrity":"sha512-kJYPElM/dV4CwXneya4hujqUD1Mo42RJgfg5oTXfeeROrSYRPR1ugkq/WKQt+TsYa7EGGGfrvILJuvEj8p4kRg==","signatures":[{"sig":"MEQCIAveWm5Tro+rrVlhmAPlwQYzeHfIImEn9uOynwjGfVaFAiAMz7ZXpFGq4vlJDifNjdd4BuEoSoFs5O7UPsnLRLPrnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benheidenreich%2fn8n-nodes-docuware@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68592},"main":"index.js","engines":{"node":">=18.10"},"gitHead":"31f15da6858667d13cfb98bc514a7e510ab16c5f","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && node scripts/copy-assets.js","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build && npm run lint"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:208da37b-89fd-4691-a857-a05221294394"}},"repository":{"url":"git+https://github.com/benheidenreich/n8n-nodes-docuware.git","type":"git"},"_npmVersion":"12.0.1","description":"n8n community node for DocuWare document management: upload, search, update index fields and delete documents in any file cabinet","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","typescript":"^5.5.0","@types/node":"^20.14.0","n8n-workflow":"*","@typescript-eslint/parser":"^7.15.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-docuware_0.1.1_1784293145747_0.5136117461573773","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@benheidenreich/n8n-nodes-docuware","version":"0.1.2","keywords":["n8n-community-node-package","docuware","dms","document-management","archive"],"author":{"name":"Benjamin Heidenreich","email":"ben.heidenreich.mail+n8n@googlemail.com"},"license":"MIT","_id":"@benheidenreich/n8n-nodes-docuware@0.1.2","maintainers":[{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"}],"homepage":"https://github.com/benheidenreich/n8n-nodes-docuware","bugs":{"url":"https://github.com/benheidenreich/n8n-nodes-docuware/issues"},"n8n":{"nodes":["dist/nodes/DocuWare/DocuWare.node.js"],"credentials":["dist/credentials/DocuWareApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"9bf58b86ceeb562495401b8d286926e536e23ba7","tarball":"https://registry.npmjs.org/@benheidenreich/n8n-nodes-docuware/-/n8n-nodes-docuware-0.1.2.tgz","fileCount":10,"integrity":"sha512-8KA+JUsvKdMSj3x9e4ph/5uATBHmuuT7edJKGtVAzdQyIdFJZpt+U2ea6rVwKAC4yp5I94tNSGoC6t7KJZXocg==","signatures":[{"sig":"MEUCIQDms5w99Gd5fP3Wzw9xnUX9cqW6lInr+bDvSb2/MsD95wIgesScsD5N9cSTjRIVnJ449w+z7+JAymCRDXSyIGo1yvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benheidenreich%2fn8n-nodes-docuware@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69598},"main":"index.js","engines":{"node":">=18.10"},"gitHead":"064191d15da4fd06b72186605ec55e9a6a1fe368","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && node scripts/copy-assets.js","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build && npm run lint"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:208da37b-89fd-4691-a857-a05221294394"}},"repository":{"url":"git+https://github.com/benheidenreich/n8n-nodes-docuware.git","type":"git"},"_npmVersion":"12.0.1","description":"n8n community node for DocuWare document management: upload, search, update index fields and delete documents in any file cabinet","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","typescript":"^5.5.0","@types/node":"^20.14.0","n8n-workflow":"*","@typescript-eslint/parser":"^7.15.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-docuware_0.1.2_1784324718060_0.05766014332549485","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@benheidenreich/n8n-nodes-docuware","version":"0.2.0","description":"n8n community node for DocuWare document management: upload, search, update index fields and delete documents in any file cabinet","keywords":["n8n-community-node-package","docuware","dms","document-management","archive"],"license":"MIT","homepage":"https://github.com/benheidenreich/n8n-nodes-docuware","author":{"name":"Benjamin Heidenreich","email":"ben.heidenreich.mail+n8n@googlemail.com"},"repository":{"type":"git","url":"git+https://github.com/benheidenreich/n8n-nodes-docuware.git"},"engines":{"node":">=18.10"},"main":"index.js","scripts":{"build":"tsc && node scripts/copy-assets.js","dev":"tsc --watch","lint":"eslint nodes credentials package.json","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build && npm run lint"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/DocuWareApi.credentials.js"],"nodes":["dist/nodes/DocuWare/DocuWare.node.js"]},"devDependencies":{"@types/node":"^20.14.0","@typescript-eslint/parser":"^7.15.0","eslint":"^8.57.0","eslint-plugin-n8n-nodes-base":"^1.16.3","n8n-workflow":"*","typescript":"^5.5.0"},"peerDependencies":{"n8n-workflow":"*"},"gitHead":"0620ca4fb02a3db4b6e22e793c09bae05308de63","_id":"@benheidenreich/n8n-nodes-docuware@0.2.0","bugs":{"url":"https://github.com/benheidenreich/n8n-nodes-docuware/issues"},"_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-TZUuOqG4TqG5fFV44IN3H60P0IAHeVZJIjCQp1fpiW2tMk7dIx0wHWVaR297K771Wvj9odQpQa8FeHY8HmJhvw==","shasum":"24a37e6b50575635e6ec9efb08be4438b423f1da","tarball":"https://registry.npmjs.org/@benheidenreich/n8n-nodes-docuware/-/n8n-nodes-docuware-0.2.0.tgz","fileCount":10,"unpackedSize":84112,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@benheidenreich%2fn8n-nodes-docuware@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAMXjyyEpYTQEZXzE9iSkxeO+8XOCrH7piJ+speQnA2HAiEAuuA1bWkrOC10IDvldO7+AZBP22ShDJikOXj1PPTkULc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:208da37b-89fd-4691-a857-a05221294394"}},"directories":{},"maintainers":[{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-docuware_0.2.0_1784329313838_0.62899439409452"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-17T12:39:52.199Z","modified":"2026-07-17T23:01:54.275Z","0.1.0":"2026-07-17T12:39:52.446Z","0.1.1":"2026-07-17T12:59:05.890Z","0.1.2":"2026-07-17T21:45:18.188Z","0.2.0":"2026-07-17T23:01:53.968Z"},"bugs":{"url":"https://github.com/benheidenreich/n8n-nodes-docuware/issues"},"author":{"name":"Benjamin Heidenreich","email":"ben.heidenreich.mail+n8n@googlemail.com"},"license":"MIT","homepage":"https://github.com/benheidenreich/n8n-nodes-docuware","keywords":["n8n-community-node-package","docuware","dms","document-management","archive"],"repository":{"type":"git","url":"git+https://github.com/benheidenreich/n8n-nodes-docuware.git"},"description":"n8n community node for DocuWare document management: upload, search, update index fields and delete documents in any file cabinet","maintainers":[{"name":"benheidenreich","email":"ben.heidenreich.mail@googlemail.com"}],"readme":"# @benheidenreich/n8n-nodes-docuware\n\nThis is an n8n community node. It lets you use [DocuWare](https://docuware.com) in your n8n workflows.\n\nDocuWare is a document management system (DMS) for archiving, indexing and retrieving business documents such as invoices, contracts and HR files.\n\n[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.\n\n[Installation](#installation)\n[Operations](#operations)\n[Credentials](#credentials)\n[Compatibility](#compatibility)\n[Usage](#usage)\n[Resources](#resources)\n[Version history](#version-history)\n\n## Installation\n\nFollow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.\n\nPackage name: `@benheidenreich/n8n-nodes-docuware`\n\n## Operations\n\n**Document**\n\n- Upload — store a file with index fields in any file cabinet\n- Get — get the metadata of a document\n- Search — search documents by index fields\n- Update Fields — update the index fields of an existing document\n- Delete — delete a document\n\n**File Cabinet**\n\n- Get Many — list all file cabinets of the organization\n- Get Fields — list the index fields of a cabinet (DB name, display name, data type) and generate a ready-to-copy JSON template for the upload\n\nThe field structure of the selected file cabinet is loaded automatically from DocuWare — no manual field mapping is required. In the recommended \"Auto From Input Data\" mode, all properties of the input item are matched case-insensitively against the cabinet's field names.\n\n## Credentials\n\nYou need a DocuWare user with access to the DocuWare Platform API.\n\n1. In n8n, create new **DocuWare API** credentials.\n2. Enter the **Server URL** of your DocuWare installation (cloud or on-premises), e.g. `https://your-company.docuware.cloud`.\n3. Enter the **Username** and **Password** of the DocuWare user.\n\nAuthentication uses the official DocuWare Identity Service (OAuth 2.0 password flow). Tokens are cached and refreshed automatically.\n\nTwo things to know:\n\n- The built-in **credential test only checks that the server URL is reachable** — username and password are verified on the first node execution, so login errors show up there, not in the credential dialog.\n- A **dedicated API user** with password login is recommended. Accounts that only sign in via SSO may not work with the password flow.\n\n## Compatibility\n\n- Requires n8n running on Node.js 18.10 or newer.\n- Tested against DocuWare Cloud and DocuWare on-premises 7.8+ (Platform API with Identity Service).\n\n## Usage\n\n1. Add the **DocuWare** node to a workflow and select your credentials.\n2. Pick a **File Cabinet** from the dropdown — the list and all field names are loaded live from your DocuWare installation.\n3. For **Upload**, provide the file in a binary field (default `data`) and choose a fields input mode:\n   - **Auto From Input Data** (recommended): name the JSON properties of the input item like the cabinet's field DB names (e.g. with a preceding Set node) — they are matched automatically.\n   - **JSON**: pass an object like `{ \"INVOICE_NUMBER\": \"RE-123\", \"AMOUNT\": 199.9 }`.\n   - **Manually Select**: pick fields via dropdowns.\n4. Field data types (text, integer, decimal, date, keywords) are detected automatically from the cabinet definition.\n\nAn importable example workflow is included in [`examples/beispiel-workflow.json`](examples/beispiel-workflow.json): Form Trigger (PDF upload) → Edit Fields (index values as raw JSON) → DocuWare Upload in auto mode. It also contains a standalone Get Fields node for fetching the JSON template (workflow A below).\n\nTo target different cabinets dynamically, switch the File Cabinet parameter to an expression and pass a cabinet ID, e.g. `{{ $json.targetCabinetId }}`. Use the File Cabinet → Get Many operation once to list all cabinet IDs.\n\n### Building the index JSON with \"Get Fields\"\n\nThe File Cabinet → **Get Fields** operation shows which index fields a cabinet has (DB name, display name, data type) and can output a ready-made JSON template. There are two ways to use it:\n\n**A — At design time (the normal case):**\n\n1. Drop a Get Fields node loosely onto the canvas, select the cabinet and execute it once with output **JSON Template**.\n2. Copy the `jsonTemplate` output — it contains every index field with a type-appropriate example value.\n3. Paste it into the Set/Edit Fields node before your Upload node (raw JSON mode) and replace the example values with real values or expressions.\n4. Delete or deactivate the Get Fields node. The production chain stays: Trigger → Set → Upload.\n\nThe Upload node fetches the cabinet's field list itself at runtime (auto matching + type conversion) — Get Fields does **not** need to be part of the production chain.\n\n**B — At runtime (dynamic scenarios only):**\n\nTrigger → Get Fields (output **Field List**) → Code node (map your source data against the field list dynamically) → Upload. This only makes sense for changing cabinets or generic workflows and costs one extra API call per execution. Careful with binary data passing through the intermediate nodes: Set/Edit Fields v3.4+ drops binary data unless \"Include Other Input Fields\" is enabled and \"Strip Binary Data\" is disabled.\n\n### Field values: dates and keywords\n\n- **Dates** accept ISO 8601 (`2026-01-01T12:00:00Z`), `yyyy-MM-dd`, any JS-parseable date string, or the raw DocuWare format `/Date(ms)/`. Conversion to `/Date(ms)/` happens automatically in every input mode (auto, JSON, manual).\n- **Keywords** fields expect an **array**: `{ \"TAGS\": [\"A\", \"B\"] }` stores two keywords. A comma-separated string like `\"A,B\"` is stored as a *single* keyword — without an error.\n\n### Chaining operations\n\nWith **Simplify** enabled (default), the Search output is a flat object including `DWDOCID` — it can be fed directly into Update Fields or Delete by setting Document ID to the expression `{{ $json.DWDOCID }}`. Search values match exactly; use `*` as a wildcard for contains searches, e.g. `*rechnung*`.\n\n### Use as an AI Agent tool\n\nThe node is marked as `usableAsTool` — it can be attached to an n8n **AI Agent** as a tool. The agent can then upload, search, update or delete DocuWare documents on its own; parameter values can be filled from the model via `$fromAI`.\n\n## Resources\n\n- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)\n- [DocuWare Platform API documentation](https://developer.docuware.com/rest/index.html)\n\n## Version history\n\n- **0.2.0** — New File Cabinet → Get Fields operation (field list + copyable JSON template); clearer error when the input binary field is missing (lists the fields that are present) and when Update Fields finds nothing to update; many new hints (wildcards in Search, Document ID origin, keywords array semantics, date formats, Set-node binary pitfall, credential test scope); example workflow rebuilt around Form Trigger → Edit Fields → Upload.\n- **0.1.2** — Bugfix: index fields arrived empty in DocuWare because the cabinet field list was filtered on a non-existent property (`UserDefined`/`DBName` instead of `Scope`/`DBFieldName`). Auto/JSON/manual field matching works reliably now.\n- **0.1.1** — Maintenance release: publishing moved to tokenless npm Trusted Publishing (OIDC); no functional changes.\n- **0.1.0** — Initial release: document upload, get, search, update fields, delete; file cabinet listing; automatic field detection with auto/JSON/manual input modes.\n","readmeFilename":"README.md"}