# Noder — nextcloud collabora Sex flödesnoder i paletten + en config. Alla sex pekar på samma **nc-collab-config** (kugghjul, inte i paletten). Utan config händer inget. ## Backends | Backend | Typisk adress | Roll | |---------|---------------|------| | Nextcloud | `https://cloud.domain.name` | Filer (WebDAV) + Office-API (OCS) | | Collabora CODE | `https://172.17.0.2:9980` | Konvertering (`/cool/...`) på Docker bridge | Auth: **användarnamn + app-lösenord**. Inte kontolösen. Standardutdata om du inte anger sökväg: `/Dokument/OfficeOut/` --- ## Så hänger de ihop ``` nc-collab-config (URL + app-lösen) │ ┌────┼────┬────────────┐ ▼ ▼ ▼ ▼ collabora-* nc-office collabora-wopi collabora-bridge (direkt CODE) (NC OCS) (health/WOPI) (kedjor + sparar) ``` **Tumregel** - PDF i Nextcloud → `collabora-bridge` **ncFileToPdf** - Fylla mall i NC → **fillTemplateSave** eller `nc-office template:fillFields` - Öppna i webbläsaren → `nc-office` **document:direct** - Bara byta format i minnet → `collabora-convert` - Se fältnamn → `collabora-extract` eller bridge **extractToPayload** - Kolla att CODE lever → `collabora-wopi` **capabilities** --- ## Gemensamma fält i msg | Fält | Betydelse | |------|-----------| | `ncPath` | Sökväg i användarens filer, t.ex. `/Dokument/avtal.docx` | | `fileId` | NC fil-id (slås upp från ncPath om saknas) | | `payload` | Rådata redan i flödet (Buffer eller HTML) | | `format` | pdf, png, docx, html, … | | `destNcPath` | Exakt målsökväg | | `destFolder` / `destName` | Mapp + namn (default `/Dokument/OfficeOut/`) | | `fields` / `transform` | JSON att skriva in i mall | | `templateNcPath` | Extra mall till convert | | `compareNcPath` | Gammal version för diff-PDF | | `operation` | Överstyr dropdown på noden | Fel → `msg.error` + röd nod. Flödet dör inte tyst. --- ## 1. collabora-convert Gör om fil till annat format via CODE. Sparar **inte** i Nextcloud — utdata i `msg.payload` (Buffer). **In:** `msg.payload` eller WebDAV GET `msg.ncPath`. Valfritt `templateNcPath`, `compareNcPath`, `format`. **Ut:** `payload`, `filename`, `format`, `contentType`, `statusCode`. ``` inject { ncPath: "/Dokument/avtal.docx", format: "pdf" } → collabora-convert → debug ``` --- ## 2. collabora-extract Lista struktur (content controls, fält …). JSON ut, ingen fil. **In:** samma källa som convert. Filter: nod eller `msg.filter` (default `contentcontrol`). ``` inject { ncPath: "/Mallar/avtal.docx" } → collabora-extract → function → collabora-transform ``` --- ## 3. collabora-transform Skriv värden i dokument via CODE. Kräver `msg.fields` eller `msg.transform`. ``` msg.ncPath = "/Mallar/avtal.docx" msg.fields = { "Kund": "AB Exempel", "Datum": "2026-08-22" } → collabora-transform ``` Spara själv efteråt om filen ska ligga i NC. --- ## 4. collabora-wopi Hälsokoll och WOPI — inte konvertering. | Operation | Syfte | |-----------|--------| | `capabilities` | Första test att CODE svarar | | `discovery` | mime → editor-URL | | `buildEditor` | `wopiSrc` + `token` → `editorUrl` | | `checkFileInfo` / `getFile` | Felsökning | Publik editor-URL går via Nextcloud (`collaboraPublicUrl`), inte intern IP. --- ## 5. nc-office Nextcloud richdocuments OCS — mallar, fält, editor-URL, assets. | Operation | Kort | |-----------|------| | `templates:list` | Lista mallar | | `templates:create` | Ny fil från mall | | `template:extractFields` | Fält-JSON via NC | | `template:fillFields` | Fyll + spara i NC | | `document:direct` | `editorUrl` för inloggad användare | | `document:public` | Samma med shareToken | | `files:convert` | NC → NC konvertering | | `assets:create` | Infogningslänk till öppen editor | ``` inject { ncPath: "/Dokument/avtal.docx" } → nc-office (document:direct) → debug editorUrl ``` --- ## 6. collabora-bridge Färdiga pipelines — det mesta i vardagsflöden. | Operation | Gör | |-----------|-----| | `ncFileToPdf` | NC-fil → PDF i OfficeOut | | `ncFileToPng` | Förhandsvisning | | `ncFileToHtml` | HTML-export | | `htmlToOffice` | HTML → docx/pdf … | | `fillTemplateSave` | Mall + fält → spara i NC | | `compareVersionsPdf` | Diff-PDF | | `extractToPayload` | Fält-JSON i msg | | `createAssetLink` | assetUrl | ``` inject { ncPath: "/Dokument/avtal.docx" } → collabora-bridge (ncFileToPdf) → debug destNcPath ``` Efter bridge kan du koppla dina befintliga OCS-noder (Talk, Mail, dela länk): först PDF i `/Dokument/OfficeOut/`, sedan dela. --- ## Config: nc-collab-config Skapas under kugghjul i Node-RED. Alla sex noder väljer samma config-instans. | Fält | Exempel | |------|---------| | nextcloudUrl | `https://cloud.domain.name` | | collaboraUrl | `https://172.17.0.2:9980` (bridge-IP, verifyTls=false) | | collaboraPublicUrl | `https://cloud.domain.name` | | username + app-lösenord | Nextcloud-inloggning | IP för CODE detekteras vid `./install.sh` — se `.env.example`.