n8n-nodes-nextcloud-ext 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -101
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# n8n-nodes-nextcloud
|
|
1
|
+
# n8n-nodes-nextcloud-ext
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/n8n-nodes-nextcloud)
|
|
3
|
+
[](https://www.npmjs.com/package/n8n-nodes-nextcloud-ext)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://docs.n8n.io/integrations/community-nodes/)
|
|
6
6
|
|
|
@@ -33,14 +33,13 @@ Nodes n8n communautaires pour **Nextcloud** — l'équivalent self-hosted des no
|
|
|
33
33
|
|
|
34
34
|
1. Ouvrez n8n → **Settings** → **Community Nodes**
|
|
35
35
|
2. Cliquez **Install a community node**
|
|
36
|
-
3. Entrez `n8n-nodes-nextcloud`
|
|
36
|
+
3. Entrez `n8n-nodes-nextcloud-ext`
|
|
37
37
|
4. Cliquez **Install**
|
|
38
38
|
|
|
39
39
|
### Installation manuelle
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
|
|
43
|
-
npm install n8n-nodes-nextcloud
|
|
42
|
+
npm install n8n-nodes-nextcloud-ext
|
|
44
43
|
```
|
|
45
44
|
|
|
46
45
|
Puis redémarrez n8n.
|
|
@@ -77,23 +76,6 @@ Gestion de fichiers, dossiers et partages via l'API WebDAV de Nextcloud.
|
|
|
77
76
|
| **Move** | Déplace ou renomme un fichier |
|
|
78
77
|
| **Copy** | Copie un fichier vers un autre chemin |
|
|
79
78
|
|
|
80
|
-
**Exemple — List**
|
|
81
|
-
```
|
|
82
|
-
Folder Path : /Documents/Factures
|
|
83
|
-
```
|
|
84
|
-
Retourne pour chaque fichier :
|
|
85
|
-
```json
|
|
86
|
-
{
|
|
87
|
-
"name": "facture-2024-01.pdf",
|
|
88
|
-
"path": "/Documents/Factures/facture-2024-01.pdf",
|
|
89
|
-
"isDirectory": false,
|
|
90
|
-
"size": 245120,
|
|
91
|
-
"contentType": "application/pdf",
|
|
92
|
-
"lastModified": "Mon, 15 Jan 2024 10:30:00 GMT",
|
|
93
|
-
"fileId": "12345"
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
79
|
**Exemple — Upload** (après un node qui produit des données binaires)
|
|
98
80
|
```
|
|
99
81
|
File Path : /Rapports/rapport-{{ $now.format('yyyy-MM') }}.xlsx
|
|
@@ -128,16 +110,6 @@ Permissions : Read Only (1)
|
|
|
128
110
|
Password : MonMotDePasse
|
|
129
111
|
Expiry Date : 2025-12-31
|
|
130
112
|
```
|
|
131
|
-
Retourne :
|
|
132
|
-
```json
|
|
133
|
-
{
|
|
134
|
-
"data": {
|
|
135
|
-
"id": 42,
|
|
136
|
-
"url": "https://cloud.mondomaine.fr/s/AbCdEfGh",
|
|
137
|
-
"token": "AbCdEfGh"
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
```
|
|
141
113
|
|
|
142
114
|
---
|
|
143
115
|
|
|
@@ -145,16 +117,31 @@ Retourne :
|
|
|
145
117
|
|
|
146
118
|
Lit et écrit dans des fichiers tableur stockés sur Nextcloud. Supporte `.xlsx`, `.xls`, `.ods` et `.csv`.
|
|
147
119
|
|
|
148
|
-
**Principe** : le node télécharge le fichier depuis Nextcloud via WebDAV, applique l'opération en mémoire (
|
|
120
|
+
**Principe** : le node télécharge le fichier depuis Nextcloud via WebDAV, applique l'opération en mémoire ([SheetJS](https://sheetjs.com/) + [JSZip](https://stuk.github.io/jszip/) pour les tables nommées), puis ré-uploade le fichier modifié.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Sélection du fichier
|
|
149
125
|
|
|
150
|
-
|
|
126
|
+
La sélection d'un fichier se fait en 3 champs enchaînés :
|
|
151
127
|
|
|
152
|
-
|
|
128
|
+
```
|
|
129
|
+
From ▼ From List ← mode : liste ou chemin direct
|
|
130
|
+
Folder ▼ 📁 Documents ← filtre la liste au dossier choisi
|
|
131
|
+
└ Finance
|
|
132
|
+
📁 Tableaux
|
|
133
|
+
/ (root)
|
|
134
|
+
File ▼ Arrêtés.xlsx ← fichiers du dossier sélectionné
|
|
135
|
+
Suivi.xlsx
|
|
136
|
+
```
|
|
153
137
|
|
|
154
|
-
|
|
|
138
|
+
| Champ | Description |
|
|
155
139
|
|---|---|
|
|
156
|
-
| **From
|
|
157
|
-
| **
|
|
140
|
+
| **From** | `From List` (menu déroulant) ou `By Path` (expression n8n) |
|
|
141
|
+
| **Folder** | Sélectionne le dossier (racine + 2 niveaux) — recharge la liste de fichiers |
|
|
142
|
+
| **File** | Fichiers tableur disponibles dans le dossier choisi |
|
|
143
|
+
|
|
144
|
+
Pour la feuille et la table, deux modes sont aussi disponibles : **From List** ou **By Name (Expression)**.
|
|
158
145
|
|
|
159
146
|
---
|
|
160
147
|
|
|
@@ -164,52 +151,51 @@ Travaille sur les données d'une feuille de calcul. La **première ligne est tra
|
|
|
164
151
|
|
|
165
152
|
| Opération | Description |
|
|
166
153
|
|---|---|
|
|
167
|
-
| **Get Rows** | Retourne toutes les lignes en tant qu'items n8n
|
|
154
|
+
| **Get Rows** | Retourne toutes les lignes en tant qu'items n8n |
|
|
168
155
|
| **Append Row** | Ajoute une nouvelle ligne à la fin de la feuille |
|
|
169
156
|
| **Update Row** | Modifie une ligne existante par son numéro (1 = première ligne de données) |
|
|
170
157
|
| **Delete Row** | Supprime une ligne par son numéro |
|
|
171
158
|
| **Get Columns** | Retourne la liste des en-têtes de colonnes |
|
|
172
159
|
| **Clear** | Supprime toutes les lignes de données en conservant l'en-tête |
|
|
173
160
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
161
|
+
#### Sélection des colonnes (Get Rows)
|
|
162
|
+
|
|
163
|
+
Le champ **Column Names or IDs** est un sélecteur multiple :
|
|
164
|
+
- Laissez vide → toutes les colonnes sont retournées
|
|
165
|
+
- Sélectionnez une ou plusieurs colonnes → seules celles-ci apparaissent dans le résultat
|
|
166
|
+
- Les colonnes disponibles sont chargées dynamiquement depuis votre fichier
|
|
178
167
|
|
|
179
|
-
Filters:
|
|
180
|
-
Column : Statut
|
|
181
|
-
Value : En attente
|
|
182
168
|
```
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"Statut": "En attente"
|
|
190
|
-
}
|
|
169
|
+
Column Names or IDs : N° × INTITULÉ ×
|
|
170
|
+
↓
|
|
171
|
+
N° ✓
|
|
172
|
+
INTITULÉ ✓
|
|
173
|
+
DATE
|
|
174
|
+
Service
|
|
191
175
|
```
|
|
192
176
|
|
|
193
|
-
**Exemple —
|
|
177
|
+
**Exemple — Get Rows (colonnes filtrées)**
|
|
194
178
|
```
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
179
|
+
From : From List
|
|
180
|
+
Folder : 📁 Tableaux
|
|
181
|
+
File : Arrêtés.xlsx
|
|
182
|
+
Sheet : Suivi
|
|
183
|
+
Columns : N° × INTITULÉ ×
|
|
184
|
+
```
|
|
185
|
+
Retourne uniquement N° et INTITULÉ pour chaque ligne :
|
|
186
|
+
```json
|
|
187
|
+
{ "N°": "2024-001", "INTITULÉ": "Arrêté de voirie" }
|
|
203
188
|
```
|
|
204
189
|
|
|
205
|
-
**Exemple —
|
|
190
|
+
**Exemple — Append Row**
|
|
206
191
|
```
|
|
207
|
-
File
|
|
208
|
-
Sheet : Feuil1
|
|
209
|
-
Row Number : {{ $json.rowIndex }}
|
|
192
|
+
File : Arrêtés.xlsx / Sheet : Suivi
|
|
210
193
|
|
|
211
194
|
Column Values:
|
|
212
|
-
|
|
195
|
+
N° → {{ $json.numero }}
|
|
196
|
+
INTITULÉ → {{ $json.objet }}
|
|
197
|
+
DATE → {{ $now.format('dd/MM/yyyy') }}
|
|
198
|
+
Service → {{ $json.service }}
|
|
213
199
|
```
|
|
214
200
|
|
|
215
201
|
---
|
|
@@ -218,14 +204,16 @@ Column Values:
|
|
|
218
204
|
|
|
219
205
|
Travaille sur une **table Excel nommée** (créée via *Insertion → Tableau* dans Excel, ou `Ctrl+T`).
|
|
220
206
|
|
|
221
|
-
|
|
207
|
+
Les tables nommées sont lues directement depuis le XML interne du fichier `.xlsx` (via JSZip), ce qui garantit une **compatibilité totale** avec Excel, même pour des fichiers créés ou modifiés en dehors de n8n.
|
|
208
|
+
|
|
209
|
+
Contrairement à la resource Sheet, les opérations Table maintiennent automatiquement la **plage de la table** : Append étend le `ref`, Delete le rétracte — les styles et filtres automatiques Excel sont préservés.
|
|
222
210
|
|
|
223
211
|
| Opération | Description |
|
|
224
212
|
|---|---|
|
|
225
213
|
| **List** | Liste toutes les tables nommées du classeur (nom, feuille, plage, colonnes, nb de lignes) |
|
|
226
|
-
| **Get Rows** | Retourne les lignes de la table
|
|
214
|
+
| **Get Rows** | Retourne les lignes de la table (avec sélection de colonnes) |
|
|
227
215
|
| **Append Row** | Ajoute une ligne à la fin **et étend la plage de la table** |
|
|
228
|
-
| **Update Row** | Modifie une ligne
|
|
216
|
+
| **Update Row** | Modifie une ligne par son numéro (1 = première ligne de données) |
|
|
229
217
|
| **Delete Row** | Supprime une ligne et **rétracte la plage de la table** |
|
|
230
218
|
| **Get Columns** | Retourne les en-têtes de colonnes de la table |
|
|
231
219
|
|
|
@@ -236,32 +224,28 @@ Contrairement à la resource Sheet, les opérations Table maintiennent automatiq
|
|
|
236
224
|
"displayName": "Tableau1",
|
|
237
225
|
"sheetName": "Suivi",
|
|
238
226
|
"ref": "A1:E42",
|
|
239
|
-
"columns": ["N°", "
|
|
227
|
+
"columns": ["N°", "INTITULÉ", "DATE", "Responsable", "Service"],
|
|
240
228
|
"dataRowCount": 41
|
|
241
229
|
}
|
|
242
230
|
```
|
|
243
231
|
|
|
244
|
-
**Exemple — Get Rows
|
|
232
|
+
**Exemple — Get Rows (colonnes filtrées)**
|
|
245
233
|
```
|
|
246
|
-
File
|
|
247
|
-
Table
|
|
248
|
-
|
|
249
|
-
Filters:
|
|
250
|
-
Column : Statut
|
|
251
|
-
Value : Validé
|
|
234
|
+
File : Arrêtés.xlsx
|
|
235
|
+
Table : Tableau1 [Suivi · A1:E42 · 41 rows]
|
|
236
|
+
Columns : N° × INTITULÉ ×
|
|
252
237
|
```
|
|
253
238
|
|
|
254
239
|
**Exemple — Append Row**
|
|
255
240
|
```
|
|
256
|
-
File :
|
|
257
|
-
Table : Tableau1
|
|
241
|
+
File : Arrêtés.xlsx / Table : Tableau1
|
|
258
242
|
|
|
259
243
|
Column Values:
|
|
260
244
|
N° → {{ $json.numero }}
|
|
261
|
-
|
|
262
|
-
|
|
245
|
+
INTITULÉ → Arrêté de voirie
|
|
246
|
+
DATE → {{ $now.format('dd/MM/yyyy') }}
|
|
263
247
|
Responsable → {{ $json.agent }}
|
|
264
|
-
|
|
248
|
+
Service → Travaux
|
|
265
249
|
```
|
|
266
250
|
→ La table passe automatiquement de `A1:E42` à `A1:E43`.
|
|
267
251
|
|
|
@@ -285,8 +269,8 @@ Tous les chemins sont **relatifs à la racine de votre espace Nextcloud** :
|
|
|
285
269
|
```
|
|
286
270
|
/ → racine
|
|
287
271
|
/Documents/ → dossier Documents
|
|
288
|
-
/Documents/rapport.xlsx → fichier
|
|
289
|
-
/Tableaux/Arrêtés/suivi.xlsx → sous-dossier
|
|
272
|
+
/Documents/rapport.xlsx → fichier dans Documents
|
|
273
|
+
/Tableaux/Arrêtés/suivi.xlsx → sous-dossier imbriqué
|
|
290
274
|
```
|
|
291
275
|
|
|
292
276
|
---
|
|
@@ -295,23 +279,17 @@ Tous les chemins sont **relatifs à la racine de votre espace Nextcloud** :
|
|
|
295
279
|
|
|
296
280
|
```bash
|
|
297
281
|
git clone https://github.com/wdebonne/n8n-nodes-nextcloud-ext.git
|
|
298
|
-
cd n8n-nodes-nextcloud
|
|
282
|
+
cd n8n-nodes-nextcloud-ext
|
|
299
283
|
|
|
300
|
-
# Installer les dépendances
|
|
301
|
-
# Sur Windows avec proxy SSL (antivirus, Zscaler, etc.) :
|
|
284
|
+
# Installer les dépendances (Windows avec proxy SSL)
|
|
302
285
|
NODE_OPTIONS=--use-system-ca npm install
|
|
303
|
-
# Sinon :
|
|
304
|
-
npm install
|
|
305
286
|
|
|
306
287
|
# Compiler TypeScript → dist/
|
|
307
288
|
npm run build
|
|
308
289
|
|
|
309
|
-
# Vérification des types seule
|
|
290
|
+
# Vérification des types seule
|
|
310
291
|
npx tsc --noEmit
|
|
311
292
|
|
|
312
|
-
# Linter
|
|
313
|
-
npm run lint
|
|
314
|
-
|
|
315
293
|
# Mode watch (recompile à chaque sauvegarde)
|
|
316
294
|
npm run dev
|
|
317
295
|
```
|
|
@@ -319,14 +297,12 @@ npm run dev
|
|
|
319
297
|
### Tester dans n8n en local
|
|
320
298
|
|
|
321
299
|
```bash
|
|
322
|
-
# Dans ce répertoire :
|
|
323
300
|
npm run build
|
|
324
301
|
npm link
|
|
325
302
|
|
|
326
303
|
# Dans le répertoire de données n8n :
|
|
327
|
-
npm link n8n-nodes-nextcloud
|
|
328
|
-
|
|
329
|
-
# Redémarrer n8n — le node apparaît dans la palette
|
|
304
|
+
npm link n8n-nodes-nextcloud-ext
|
|
305
|
+
# Redémarrer n8n
|
|
330
306
|
```
|
|
331
307
|
|
|
332
308
|
---
|
|
@@ -337,8 +313,8 @@ npm link n8n-nodes-nextcloud
|
|
|
337
313
|
- [ ] Node **Nextcloud Talk** (messages, salons)
|
|
338
314
|
- [ ] Node **Nextcloud Contacts** (CardDAV)
|
|
339
315
|
- [ ] Node **Nextcloud Calendar** (CalDAV)
|
|
340
|
-
- [ ]
|
|
341
|
-
- [ ]
|
|
316
|
+
- [ ] Filtrage de lignes par valeur (column = value)
|
|
317
|
+
- [ ] Navigation de dossiers en cascade (3+ niveaux)
|
|
342
318
|
|
|
343
319
|
---
|
|
344
320
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-nextcloud-ext",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "n8n community nodes for Nextcloud — file management (list, upload, download, share) and spreadsheet operations equivalent to the Microsoft 365 Excel node, including named Excel table support",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|