# Node reference Package: **`node-red-contrib-nextcloud-ocs`** (see `nodes/nextcloud-ocs/package.json`). All API nodes require a **nextcloud-config** configuration node unless noted. ## nextcloud-config Configuration node — not placed on flows alone. | Field | Description | |-------|-------------| | Name | Label in the editor | | Nextcloud URL | Base URL, e.g. `https://cloud.example.com` | | Username | Nextcloud account name | | Password | **App password** (stored encrypted) | ## ocs-api Generic OCS/HTTP caller. | Config | Default | |--------|---------| | Endpoint | `/ocs/v2.php/cloud/user` | | Method | `GET` | **Runtime:** `msg.endpoint`, `msg.method`, `msg.body`, `msg.headers`. ## collectives Nextcloud **Collectives** app. Operations use ids like `collective:list`, `page:create`, `share:updatePageShare`, etc. Categories include: collectives, pages, trash, shares, templates, tags, user settings, sessions, public (token) APIs, search. ~80 operations — see `collectives.js` `OPERATIONS` for the full list. ## file-operations | Operation | Protocol | |-----------|----------| | `list`, `get`, `upload`, `mkdir`, `move`, `copy`, `delete` | WebDAV `/remote.php/dav/files/{user}/…` | | `listShares`, `createShare`, `deleteShare` | OCS sharing API | | `fileInfo`, `favorites` | OCS files API | Path placeholders: `{user}`, `{folder}`, `{path}`, `{id}`. ## mail Mail app OCS endpoints (send, list messages, accounts, etc.). See `mail.js`. ## tables Tables app — tables, views, rows, columns, shares. See `tables.js`. ## talk Talk (Spreed) — rooms, messages, reactions, polls, bots, breakout rooms, etc. Largest node (~80+ operations). See `talk.js`. ## webhooks Webhook Listeners app: | Operation | Method | |-----------|--------| | `webhook:list` | GET | | `webhook:get` | GET | | `webhook:create` | POST | | `webhook:update` | POST | | `webhook:delete` | DELETE | | `webhook:deleteByApp` | DELETE | ## dashboard Dashboard widgets API. See `dashboard.js`. ## dav DAV-related OCS (direct links, out-of-office). See `dav.js`. ## core Nextcloud **core** OCS and related APIs (~50 operations), including: - Status, capabilities, app passwords - Navigation, profile, hover card - Collaboration resources, references, previews, avatars - CSRF, login flow v2, wipe, OCM discovery - Unified search, task processing, text processing - Translation, text-to-image, teams Operation ids use prefixes: `status:`, `capabilities:`, `appPassword:`, `search:`, `task:`, etc. See `core.js`. ## oauth2 OAuth2 client management OCS. See `oauth2.js`. ## provisioning User and group provisioning API. See `provisioning.js`. ## filesharing Dedicated file sharing OCS (beyond WebDAV in file-operations). See `filesharing.js`. ## userstatus User status (emoji/message). See `userstatus.js`. ## settings User and admin settings OCS. See `settings.js`. --- ## Common message properties | Property | Used by | |----------|---------| | `msg.operation` | All operation-based nodes | | `msg.payload` | Response body (output) | | `msg.statusCode` | HTTP status (output) | | `msg.error` | Error string on failure | Path parameters are typically available as `msg.` matching the placeholder (e.g. `msg.collectiveId`, `msg.pageId`, `msg.webhookId`). Body fields configured in the editor can often be overridden via `msg.body` object or node-specific `msg.body*` fields — check each node’s `buildBody` / handler in the `.js` file. ## Adding a new operation 1. Add entry to `OPERATIONS` in the relevant `.js` file. 2. Add dropdown option and fields in the matching `.html` file. 3. Bump `version` in `package.json`. 4. Rebuild Docker image and restart container. For one-off APIs, use **ocs-api** instead of extending a dedicated node.