n8n-nodes-oxsr-technical-utils 4.1.4 → 4.1.5

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.
@@ -101,6 +101,8 @@ const AUTO_OPERATIONS_BY_RESOURCE = {
101
101
  'getPosts',
102
102
  'getOldDrafts',
103
103
  'getMissingAlt',
104
+ 'checkInternalLinks',
105
+ 'replaceContentText',
104
106
  'createPost',
105
107
  'updatePost',
106
108
  'deletePost',
@@ -117,7 +119,7 @@ const AUTO_OPERATIONS_BY_RESOURCE = {
117
119
  'addMenuCategories',
118
120
  'deleteMenuItemsByText',
119
121
  ],
120
- server: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'deleteFile', 'getServerDiagnostics', 'runServerConsole'],
122
+ server: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'getFileHistory', 'rollbackFileVersion', 'deleteFile', 'getServerDiagnostics', 'runServerConsole'],
121
123
  media: ['getMediaDetailed', 'updateMediaMeta', 'deleteMedia'],
122
124
  security: [
123
125
  'getFileChecksums',
@@ -179,6 +181,8 @@ const OPERATION_DESCRIPTIONS = {
179
181
  getPosts: 'Acción de listar posts por estado con paginación.',
180
182
  getOldDrafts: 'Acción de detectar borradores antiguos para limpieza editorial.',
181
183
  getMissingAlt: 'Acción de listar imágenes sin ALT para optimización SEO.',
184
+ checkInternalLinks: 'Acción de detectar enlaces internos rotos (404) en posts/pages con sugerencia de fix.',
185
+ replaceContentText: 'Acción de reemplazar URLs o textos concretos en contenido existente sin regenerar la página completa.',
182
186
  createPost: 'Acción de crear post/página en WordPress con contenido y metadatos SEO.',
183
187
  updatePost: 'Acción de actualizar post/página existente por ID.',
184
188
  deletePost: 'Acción de eliminar post/página por ID con opción forzada.',
@@ -192,6 +196,9 @@ const OPERATION_DESCRIPTIONS = {
192
196
  getFile: 'Acción de ver contenido de archivo del servidor.',
193
197
  updateFile: 'Acción de editar/guardar archivo del servidor.',
194
198
  patchFileLines: 'Acción de editar o insertar líneas concretas en un archivo del servidor.',
199
+ patchFileByAnchor: 'Acción de insertar o reemplazar contenido por ancla de texto (sin depender de número de línea).',
200
+ getFileHistory: 'Acción de listar historial de snapshots before/after de cambios en archivos.',
201
+ rollbackFileVersion: 'Acción de revertir un archivo a un snapshot anterior por ID.',
195
202
  deleteFile: 'Acción de eliminar archivo del servidor.',
196
203
  getServerDiagnostics: 'Acción de leer diagnóstico general de servidor y rendimiento.',
197
204
  runServerConsole: 'Acción de ejecutar comando de consola permitido para diagnóstico.',
@@ -591,6 +598,8 @@ class OXSRTechnicalUtils {
591
598
  { name: 'Get Posts', value: 'getPosts' },
592
599
  { name: 'Get Old Drafts', value: 'getOldDrafts' },
593
600
  { name: 'Get Missing ALT', value: 'getMissingAlt' },
601
+ { name: 'Check Internal Links', value: 'checkInternalLinks' },
602
+ { name: 'Replace Content Text', value: 'replaceContentText' },
594
603
  { name: 'Create Post', value: 'createPost' },
595
604
  { name: 'Update Post', value: 'updatePost' },
596
605
  { name: 'Delete Post', value: 'deletePost' },
@@ -624,6 +633,9 @@ class OXSRTechnicalUtils {
624
633
  { name: 'Get File', value: 'getFile' },
625
634
  { name: 'Update File', value: 'updateFile' },
626
635
  { name: 'Patch File Lines', value: 'patchFileLines' },
636
+ { name: 'Patch File By Anchor', value: 'patchFileByAnchor' },
637
+ { name: 'Get File History', value: 'getFileHistory' },
638
+ { name: 'Rollback File Version', value: 'rollbackFileVersion' },
627
639
  { name: 'Delete File', value: 'deleteFile' },
628
640
  ],
629
641
  },
@@ -995,7 +1007,7 @@ class OXSRTechnicalUtils {
995
1007
  displayName: 'Status',
996
1008
  name: 'status',
997
1009
  type: 'options',
998
- displayOptions: { show: { resource: ['content', 'woo'], operation: ['getPosts', 'getWooOrders'] } },
1010
+ displayOptions: { show: { resource: ['content', 'woo'], operation: ['getPosts', 'checkInternalLinks', 'getWooOrders'] } },
999
1011
  default: 'publish',
1000
1012
  required: false,
1001
1013
  options: [
@@ -1010,7 +1022,7 @@ class OXSRTechnicalUtils {
1010
1022
  displayName: 'Limit',
1011
1023
  name: 'limit',
1012
1024
  type: 'number',
1013
- displayOptions: { show: { resource: ['content'], operation: ['getPosts'] } },
1025
+ displayOptions: { show: { resource: ['content'], operation: ['getPosts', 'checkInternalLinks'] } },
1014
1026
  default: 20,
1015
1027
  required: false,
1016
1028
  },
@@ -1022,6 +1034,148 @@ class OXSRTechnicalUtils {
1022
1034
  default: 0,
1023
1035
  required: false,
1024
1036
  },
1037
+ {
1038
+ displayName: 'Replace Search Text',
1039
+ name: 'replaceSearchText',
1040
+ type: 'string',
1041
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1042
+ default: '',
1043
+ required: true,
1044
+ description: 'Texto o URL exacta a buscar en el contenido',
1045
+ },
1046
+ {
1047
+ displayName: 'Replace With Text',
1048
+ name: 'replaceWithText',
1049
+ type: 'string',
1050
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1051
+ default: '',
1052
+ required: false,
1053
+ description: 'Nuevo texto/URL de reemplazo (vacío elimina coincidencias)',
1054
+ },
1055
+ {
1056
+ displayName: 'Replace Post ID',
1057
+ name: 'replacePostId',
1058
+ type: 'number',
1059
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1060
+ default: 0,
1061
+ required: false,
1062
+ description: 'Si se indica, reemplaza solo en ese post/página',
1063
+ },
1064
+ {
1065
+ displayName: 'Replace Post Types CSV',
1066
+ name: 'replacePostTypesCsv',
1067
+ type: 'string',
1068
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1069
+ default: 'page,post',
1070
+ required: false,
1071
+ description: 'Tipos de post a incluir, separados por coma',
1072
+ },
1073
+ {
1074
+ displayName: 'Replace Status',
1075
+ name: 'replaceStatus',
1076
+ type: 'options',
1077
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1078
+ default: 'publish',
1079
+ required: false,
1080
+ options: [
1081
+ { name: 'Publish', value: 'publish' },
1082
+ { name: 'Draft', value: 'draft' },
1083
+ { name: 'Pending', value: 'pending' },
1084
+ { name: 'Private', value: 'private' },
1085
+ { name: 'Any', value: 'any' },
1086
+ ],
1087
+ description: 'Estado de posts/páginas a escanear',
1088
+ },
1089
+ {
1090
+ displayName: 'Replace Limit',
1091
+ name: 'replaceLimit',
1092
+ type: 'number',
1093
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1094
+ default: 50,
1095
+ required: false,
1096
+ description: 'Máximo de posts/páginas a revisar por ejecución',
1097
+ },
1098
+ {
1099
+ displayName: 'Replace Case Sensitive',
1100
+ name: 'replaceCaseSensitive',
1101
+ type: 'boolean',
1102
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1103
+ default: false,
1104
+ required: false,
1105
+ description: 'Si está activo, distingue mayúsculas/minúsculas',
1106
+ },
1107
+ {
1108
+ displayName: 'Replace In Title',
1109
+ name: 'replaceInTitle',
1110
+ type: 'boolean',
1111
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1112
+ default: false,
1113
+ required: false,
1114
+ description: 'También reemplaza en el título, además del contenido',
1115
+ },
1116
+ {
1117
+ displayName: 'Replace Simulate',
1118
+ name: 'replaceSimulate',
1119
+ type: 'boolean',
1120
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1121
+ default: false,
1122
+ required: false,
1123
+ description: 'Simula reemplazo sin escribir cambios',
1124
+ },
1125
+ {
1126
+ displayName: 'Search Text (Alias MCP)',
1127
+ name: 'Search_Text',
1128
+ type: 'string',
1129
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1130
+ default: '',
1131
+ required: false,
1132
+ description: 'Alias MCP de texto a buscar',
1133
+ },
1134
+ {
1135
+ displayName: 'Replace Text (Alias MCP)',
1136
+ name: 'Replace_Text',
1137
+ type: 'string',
1138
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1139
+ default: '',
1140
+ required: false,
1141
+ description: 'Alias MCP de texto de reemplazo',
1142
+ },
1143
+ {
1144
+ displayName: 'Post Types CSV (Alias MCP)',
1145
+ name: 'Post_Types_CSV',
1146
+ type: 'string',
1147
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1148
+ default: '',
1149
+ required: false,
1150
+ description: 'Alias MCP de tipos de post separados por coma',
1151
+ },
1152
+ {
1153
+ displayName: 'Case Sensitive (Alias MCP)',
1154
+ name: 'Case_Sensitive',
1155
+ type: 'boolean',
1156
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1157
+ default: false,
1158
+ required: false,
1159
+ description: 'Alias MCP de case sensitive',
1160
+ },
1161
+ {
1162
+ displayName: 'In Title (Alias MCP)',
1163
+ name: 'In_Title',
1164
+ type: 'boolean',
1165
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1166
+ default: false,
1167
+ required: false,
1168
+ description: 'Alias MCP para reemplazar también en título',
1169
+ },
1170
+ {
1171
+ displayName: 'Simulate (Alias MCP)',
1172
+ name: 'Simulate',
1173
+ type: 'boolean',
1174
+ displayOptions: { show: { resource: ['content'], operation: ['replaceContentText'] } },
1175
+ default: false,
1176
+ required: false,
1177
+ description: 'Alias MCP para simulación sin escritura',
1178
+ },
1025
1179
  {
1026
1180
  displayName: 'Keep Last',
1027
1181
  name: 'keepLast',
@@ -1254,11 +1408,85 @@ class OXSRTechnicalUtils {
1254
1408
  displayName: 'Featured Image URL',
1255
1409
  name: 'featuredImageUrl',
1256
1410
  type: 'string',
1257
- displayOptions: { show: { resource: ['content'], operation: ['createPost'] } },
1411
+ displayOptions: { show: { resource: ['content'], operation: ['createPost', 'updatePost'] } },
1258
1412
  default: '',
1259
1413
  required: false,
1260
1414
  description: 'URL de imagen para descargar, subir a WordPress y asignar como destacada',
1261
1415
  },
1416
+ {
1417
+ displayName: 'Post ID (Alias MCP)',
1418
+ name: 'Post_ID',
1419
+ type: 'number',
1420
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost', 'replaceContentText'] } },
1421
+ default: 0,
1422
+ required: false,
1423
+ description: 'Alias MCP para update post por ID',
1424
+ },
1425
+ {
1426
+ displayName: 'Title (Alias MCP)',
1427
+ name: 'Title',
1428
+ type: 'string',
1429
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1430
+ default: '',
1431
+ required: false,
1432
+ description: 'Alias MCP de título para update post',
1433
+ },
1434
+ {
1435
+ displayName: 'Content (Alias MCP)',
1436
+ name: 'Content',
1437
+ type: 'string',
1438
+ typeOptions: { rows: 4 },
1439
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1440
+ default: '',
1441
+ required: false,
1442
+ description: 'Alias MCP de contenido para update post',
1443
+ },
1444
+ {
1445
+ displayName: 'Status (Alias MCP)',
1446
+ name: 'Status__Write_',
1447
+ type: 'string',
1448
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1449
+ default: '',
1450
+ required: false,
1451
+ description: 'Alias MCP de estado para update post',
1452
+ },
1453
+ {
1454
+ displayName: 'SEO Title (Alias MCP)',
1455
+ name: 'SEO_Title',
1456
+ type: 'string',
1457
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1458
+ default: '',
1459
+ required: false,
1460
+ description: 'Alias MCP de SEO title',
1461
+ },
1462
+ {
1463
+ displayName: 'SEO Description (Alias MCP)',
1464
+ name: 'SEO_Description',
1465
+ type: 'string',
1466
+ typeOptions: { rows: 3 },
1467
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1468
+ default: '',
1469
+ required: false,
1470
+ description: 'Alias MCP de SEO description',
1471
+ },
1472
+ {
1473
+ displayName: 'Featured Image ID (Alias MCP)',
1474
+ name: 'Featured_Image_ID',
1475
+ type: 'number',
1476
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1477
+ default: 0,
1478
+ required: false,
1479
+ description: 'Alias MCP para imagen destacada por ID',
1480
+ },
1481
+ {
1482
+ displayName: 'Featured Image URL (Alias MCP)',
1483
+ name: 'Featured_Image_URL',
1484
+ type: 'string',
1485
+ displayOptions: { show: { resource: ['content'], operation: ['updatePost'] } },
1486
+ default: '',
1487
+ required: false,
1488
+ description: 'Alias MCP para imagen destacada por URL',
1489
+ },
1262
1490
  {
1263
1491
  displayName: 'Auto Optimize SEO',
1264
1492
  name: 'sourceAutoOptimizeSeo',
@@ -2122,7 +2350,7 @@ class OXSRTechnicalUtils {
2122
2350
  displayName: 'File Path',
2123
2351
  name: 'serverFilePath',
2124
2352
  type: 'string',
2125
- displayOptions: { show: { resource: ['server'], operation: ['getFile', 'updateFile', 'patchFileLines', 'deleteFile'] } },
2353
+ displayOptions: { show: { resource: ['server'], operation: ['getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'deleteFile', 'rollbackFileVersion'] } },
2126
2354
  default: '',
2127
2355
  required: false,
2128
2356
  description: 'Ruta absoluta o relativa dentro de wp-content',
@@ -2131,7 +2359,7 @@ class OXSRTechnicalUtils {
2131
2359
  displayName: 'File Path (Alias MCP)',
2132
2360
  name: 'File_Path',
2133
2361
  type: 'string',
2134
- displayOptions: { show: { resource: ['server'], operation: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'deleteFile'] } },
2362
+ displayOptions: { show: { resource: ['server'], operation: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'deleteFile', 'rollbackFileVersion'] } },
2135
2363
  default: '',
2136
2364
  required: false,
2137
2365
  description: 'Alias para tool-calls MCP',
@@ -2150,7 +2378,7 @@ class OXSRTechnicalUtils {
2150
2378
  name: 'serverFileContent',
2151
2379
  type: 'string',
2152
2380
  typeOptions: { rows: 12 },
2153
- displayOptions: { show: { resource: ['server'], operation: ['updateFile'] } },
2381
+ displayOptions: { show: { resource: ['server'], operation: ['updateFile', 'patchFileByAnchor'] } },
2154
2382
  default: '',
2155
2383
  required: false,
2156
2384
  description: 'Contenido a guardar en el archivo',
@@ -2172,6 +2400,47 @@ class OXSRTechnicalUtils {
2172
2400
  ],
2173
2401
  description: 'Modo de edición parcial por líneas',
2174
2402
  },
2403
+ {
2404
+ displayName: 'Anchor Mode',
2405
+ name: 'serverAnchorMode',
2406
+ type: 'options',
2407
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2408
+ default: 'insert_after_anchor',
2409
+ required: true,
2410
+ options: [
2411
+ { name: 'Insert After Anchor', value: 'insert_after_anchor' },
2412
+ { name: 'Insert Before Anchor', value: 'insert_before_anchor' },
2413
+ { name: 'Replace Anchor Line', value: 'replace_anchor_line' },
2414
+ ],
2415
+ description: 'Modo de edición por coincidencia de texto ancla',
2416
+ },
2417
+ {
2418
+ displayName: 'Anchor Text',
2419
+ name: 'serverAnchorText',
2420
+ type: 'string',
2421
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2422
+ default: '',
2423
+ required: true,
2424
+ description: 'Texto que identifica la línea ancla dentro del archivo',
2425
+ },
2426
+ {
2427
+ displayName: 'Anchor Occurrence',
2428
+ name: 'serverAnchorOccurrence',
2429
+ type: 'number',
2430
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2431
+ default: 1,
2432
+ required: false,
2433
+ description: 'Coincidencia de ancla a usar (1 = primera, 2 = segunda, etc.)',
2434
+ },
2435
+ {
2436
+ displayName: 'Anchor Case Sensitive',
2437
+ name: 'serverAnchorCaseSensitive',
2438
+ type: 'boolean',
2439
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2440
+ default: false,
2441
+ required: false,
2442
+ description: 'Si está activo, la coincidencia de ancla distingue mayúsculas/minúsculas',
2443
+ },
2175
2444
  {
2176
2445
  displayName: 'Line Start',
2177
2446
  name: 'serverLineStart',
@@ -2204,7 +2473,7 @@ class OXSRTechnicalUtils {
2204
2473
  displayName: 'Patch Mode (Alias MCP)',
2205
2474
  name: 'Patch_Mode',
2206
2475
  type: 'string',
2207
- displayOptions: { show: { resource: ['server'], operation: ['patchFileLines'] } },
2476
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileLines', 'patchFileByAnchor'] } },
2208
2477
  default: '',
2209
2478
  required: false,
2210
2479
  description: 'Alias MCP del modo de parche',
@@ -2232,17 +2501,71 @@ class OXSRTechnicalUtils {
2232
2501
  name: 'Patch_Content',
2233
2502
  type: 'string',
2234
2503
  typeOptions: { rows: 8 },
2235
- displayOptions: { show: { resource: ['server'], operation: ['patchFileLines'] } },
2504
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileLines', 'patchFileByAnchor'] } },
2236
2505
  default: '',
2237
2506
  required: false,
2238
2507
  description: 'Alias MCP de contenido de parche',
2239
2508
  },
2509
+ {
2510
+ displayName: 'Anchor Text (Alias MCP)',
2511
+ name: 'Anchor_Text',
2512
+ type: 'string',
2513
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2514
+ default: '',
2515
+ required: false,
2516
+ description: 'Alias MCP del texto ancla',
2517
+ },
2518
+ {
2519
+ displayName: 'Anchor Occurrence (Alias MCP)',
2520
+ name: 'Anchor_Occurrence',
2521
+ type: 'number',
2522
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2523
+ default: 1,
2524
+ required: false,
2525
+ description: 'Alias MCP de ocurrencia de ancla',
2526
+ },
2527
+ {
2528
+ displayName: 'Anchor Case Sensitive (Alias MCP)',
2529
+ name: 'Anchor_Case_Sensitive',
2530
+ type: 'boolean',
2531
+ displayOptions: { show: { resource: ['server'], operation: ['patchFileByAnchor'] } },
2532
+ default: false,
2533
+ required: false,
2534
+ description: 'Alias MCP de case-sensitive en ancla',
2535
+ },
2536
+ {
2537
+ displayName: 'History ID',
2538
+ name: 'serverHistoryId',
2539
+ type: 'string',
2540
+ displayOptions: { show: { resource: ['server'], operation: ['rollbackFileVersion'] } },
2541
+ default: '',
2542
+ required: true,
2543
+ description: 'ID del snapshot de historial para revertir',
2544
+ },
2545
+ {
2546
+ displayName: 'History ID (Alias MCP)',
2547
+ name: 'History_ID',
2548
+ type: 'string',
2549
+ displayOptions: { show: { resource: ['server'], operation: ['rollbackFileVersion'] } },
2550
+ default: '',
2551
+ required: false,
2552
+ description: 'Alias MCP de ID de snapshot',
2553
+ },
2554
+ {
2555
+ displayName: 'History Limit',
2556
+ name: 'serverHistoryLimit',
2557
+ type: 'number',
2558
+ displayOptions: { show: { resource: ['server'], operation: ['getFileHistory'] } },
2559
+ default: 20,
2560
+ required: false,
2561
+ description: 'Cantidad máxima de snapshots a devolver',
2562
+ },
2240
2563
  {
2241
2564
  displayName: 'File Content (Alias MCP)',
2242
2565
  name: 'File_Content',
2243
2566
  type: 'string',
2244
2567
  typeOptions: { rows: 12 },
2245
- displayOptions: { show: { resource: ['server'], operation: ['updateFile', 'patchFileLines'] } },
2568
+ displayOptions: { show: { resource: ['server'], operation: ['updateFile', 'patchFileLines', 'patchFileByAnchor'] } },
2246
2569
  default: '',
2247
2570
  required: false,
2248
2571
  description: 'Alias para tool-calls MCP',
@@ -2277,7 +2600,7 @@ class OXSRTechnicalUtils {
2277
2600
  displayName: 'Allow Sensitive Paths',
2278
2601
  name: 'serverAllowSensitive',
2279
2602
  type: 'boolean',
2280
- displayOptions: { show: { resource: ['server'], operation: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'deleteFile'] } },
2603
+ displayOptions: { show: { resource: ['server'], operation: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'getFileHistory', 'deleteFile', 'rollbackFileVersion'] } },
2281
2604
  default: false,
2282
2605
  required: false,
2283
2606
  description: 'Permite rutas sensibles como wp-config.php (usar con cuidado)',
@@ -2286,7 +2609,7 @@ class OXSRTechnicalUtils {
2286
2609
  displayName: 'Simulate Server Action',
2287
2610
  name: 'serverSimulate',
2288
2611
  type: 'boolean',
2289
- displayOptions: { show: { resource: ['server'], operation: ['updateFile', 'patchFileLines', 'deleteFile'] } },
2612
+ displayOptions: { show: { resource: ['server'], operation: ['updateFile', 'patchFileLines', 'patchFileByAnchor', 'deleteFile', 'rollbackFileVersion'] } },
2290
2613
  default: false,
2291
2614
  required: false,
2292
2615
  description: 'Simula escritura/borrado en servidor sin aplicar cambios',