@sinoia/hubdoc-tools 1.0.4 → 1.2.1

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.
Files changed (341) hide show
  1. package/README.md +115 -34
  2. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts +15 -0
  3. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js +37 -0
  5. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts +15 -0
  7. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js +54 -0
  9. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js.map +1 -0
  10. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts +15 -0
  11. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/plugins/test-plugin/index.js +34 -0
  13. package/dist/__tests__/fixtures/plugins/test-plugin/index.js.map +1 -0
  14. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts +16 -0
  15. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js +145 -0
  17. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js.map +1 -0
  18. package/dist/api/api/authentication-api.d.ts +208 -0
  19. package/dist/api/api/authentication-api.d.ts.map +1 -0
  20. package/dist/api/api/authentication-api.js +385 -0
  21. package/dist/api/api/authentication-api.js.map +1 -0
  22. package/dist/api/api/bulk-uploads-api.d.ts +101 -0
  23. package/dist/api/api/bulk-uploads-api.d.ts.map +1 -0
  24. package/dist/api/api/bulk-uploads-api.js +195 -0
  25. package/dist/api/api/bulk-uploads-api.js.map +1 -0
  26. package/dist/api/api/contacts-api.d.ts +246 -0
  27. package/dist/api/api/contacts-api.d.ts.map +1 -0
  28. package/dist/api/api/contacts-api.js +465 -0
  29. package/dist/api/api/contacts-api.js.map +1 -0
  30. package/dist/api/api/documents-api.d.ts +267 -0
  31. package/dist/api/api/documents-api.d.ts.map +1 -0
  32. package/dist/api/api/documents-api.js +506 -0
  33. package/dist/api/api/documents-api.js.map +1 -0
  34. package/dist/api/api/folders-api.d.ts +255 -0
  35. package/dist/api/api/folders-api.d.ts.map +1 -0
  36. package/dist/api/api/folders-api.js +479 -0
  37. package/dist/api/api/folders-api.js.map +1 -0
  38. package/dist/api/api/groups-api.d.ts +246 -0
  39. package/dist/api/api/groups-api.d.ts.map +1 -0
  40. package/dist/api/api/groups-api.js +465 -0
  41. package/dist/api/api/groups-api.js.map +1 -0
  42. package/dist/api/api/permissions-api.d.ts +246 -0
  43. package/dist/api/api/permissions-api.d.ts.map +1 -0
  44. package/dist/api/api/permissions-api.js +465 -0
  45. package/dist/api/api/permissions-api.js.map +1 -0
  46. package/dist/api/api/workspaces-api.d.ts +213 -0
  47. package/dist/api/api/workspaces-api.d.ts.map +1 -0
  48. package/dist/api/api/workspaces-api.js +424 -0
  49. package/dist/api/api/workspaces-api.js.map +1 -0
  50. package/dist/api/api.d.ts +20 -0
  51. package/dist/api/api.d.ts.map +1 -0
  52. package/dist/api/api.js +38 -0
  53. package/dist/api/api.js.map +1 -0
  54. package/dist/api/base.d.ts +43 -0
  55. package/dist/api/base.d.ts.map +1 -0
  56. package/dist/api/base.js +49 -0
  57. package/dist/api/base.js.map +1 -0
  58. package/dist/api/common.d.ts +29 -0
  59. package/dist/api/common.d.ts.map +1 -0
  60. package/dist/api/common.js +109 -0
  61. package/dist/api/common.js.map +1 -0
  62. package/dist/api/configuration.d.ts +99 -0
  63. package/dist/api/configuration.d.ts.map +1 -0
  64. package/dist/api/configuration.js +49 -0
  65. package/dist/api/configuration.js.map +1 -0
  66. package/dist/api/index.d.ts +15 -0
  67. package/dist/api/index.d.ts.map +1 -0
  68. package/dist/api/index.js +33 -0
  69. package/dist/api/index.js.map +1 -0
  70. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts +34 -0
  71. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts.map +1 -0
  72. package/dist/api/models/api-v1-documents-documents-post-request1.js +16 -0
  73. package/dist/api/models/api-v1-documents-documents-post-request1.js.map +1 -0
  74. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts +17 -0
  75. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts.map +1 -0
  76. package/dist/api/models/api-v1-documents-documents-post201-response.js +16 -0
  77. package/dist/api/models/api-v1-documents-documents-post201-response.js.map +1 -0
  78. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts +17 -0
  79. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts.map +1 -0
  80. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js +16 -0
  81. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js.map +1 -0
  82. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts +17 -0
  83. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts.map +1 -0
  84. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js +16 -0
  85. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js.map +1 -0
  86. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts +18 -0
  87. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts.map +1 -0
  88. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js +16 -0
  89. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js.map +1 -0
  90. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts +17 -0
  91. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts.map +1 -0
  92. package/dist/api/models/api-v1-documents-folders-id-get200-response.js +16 -0
  93. package/dist/api/models/api-v1-documents-folders-id-get200-response.js.map +1 -0
  94. package/dist/api/models/bulk-upload-mutation.d.ts +34 -0
  95. package/dist/api/models/bulk-upload-mutation.d.ts.map +1 -0
  96. package/dist/api/models/bulk-upload-mutation.js +16 -0
  97. package/dist/api/models/bulk-upload-mutation.js.map +1 -0
  98. package/dist/api/models/bulk-upload.d.ts +91 -0
  99. package/dist/api/models/bulk-upload.d.ts.map +1 -0
  100. package/dist/api/models/bulk-upload.js +23 -0
  101. package/dist/api/models/bulk-upload.js.map +1 -0
  102. package/dist/api/models/contact-mutation.d.ts +30 -0
  103. package/dist/api/models/contact-mutation.d.ts.map +1 -0
  104. package/dist/api/models/contact-mutation.js +16 -0
  105. package/dist/api/models/contact-mutation.js.map +1 -0
  106. package/dist/api/models/contact.d.ts +54 -0
  107. package/dist/api/models/contact.d.ts.map +1 -0
  108. package/dist/api/models/contact.js +16 -0
  109. package/dist/api/models/contact.js.map +1 -0
  110. package/dist/api/models/document-document-type.d.ts +19 -0
  111. package/dist/api/models/document-document-type.d.ts.map +1 -0
  112. package/dist/api/models/document-document-type.js +16 -0
  113. package/dist/api/models/document-document-type.js.map +1 -0
  114. package/dist/api/models/document-domain.d.ts +19 -0
  115. package/dist/api/models/document-domain.d.ts.map +1 -0
  116. package/dist/api/models/document-domain.js +16 -0
  117. package/dist/api/models/document-domain.js.map +1 -0
  118. package/dist/api/models/document-folder.d.ts +19 -0
  119. package/dist/api/models/document-folder.d.ts.map +1 -0
  120. package/dist/api/models/document-folder.js +16 -0
  121. package/dist/api/models/document-folder.js.map +1 -0
  122. package/dist/api/models/document-mutation.d.ts +50 -0
  123. package/dist/api/models/document-mutation.d.ts.map +1 -0
  124. package/dist/api/models/document-mutation.js +16 -0
  125. package/dist/api/models/document-mutation.js.map +1 -0
  126. package/dist/api/models/document.d.ts +73 -0
  127. package/dist/api/models/document.d.ts.map +1 -0
  128. package/dist/api/models/document.js +16 -0
  129. package/dist/api/models/document.js.map +1 -0
  130. package/dist/api/models/folder-mutation.d.ts +38 -0
  131. package/dist/api/models/folder-mutation.d.ts.map +1 -0
  132. package/dist/api/models/folder-mutation.js +16 -0
  133. package/dist/api/models/folder-mutation.js.map +1 -0
  134. package/dist/api/models/folder-parent.d.ts +19 -0
  135. package/dist/api/models/folder-parent.d.ts.map +1 -0
  136. package/dist/api/models/folder-parent.js +16 -0
  137. package/dist/api/models/folder-parent.js.map +1 -0
  138. package/dist/api/models/folder.d.ts +65 -0
  139. package/dist/api/models/folder.d.ts.map +1 -0
  140. package/dist/api/models/folder.js +16 -0
  141. package/dist/api/models/folder.js.map +1 -0
  142. package/dist/api/models/group-mutation.d.ts +26 -0
  143. package/dist/api/models/group-mutation.d.ts.map +1 -0
  144. package/dist/api/models/group-mutation.js +16 -0
  145. package/dist/api/models/group-mutation.js.map +1 -0
  146. package/dist/api/models/group.d.ts +38 -0
  147. package/dist/api/models/group.d.ts.map +1 -0
  148. package/dist/api/models/group.js +16 -0
  149. package/dist/api/models/group.js.map +1 -0
  150. package/dist/api/models/index.d.ts +35 -0
  151. package/dist/api/models/index.d.ts.map +1 -0
  152. package/dist/api/models/index.js +51 -0
  153. package/dist/api/models/index.js.map +1 -0
  154. package/dist/api/models/model-error.d.ts +26 -0
  155. package/dist/api/models/model-error.d.ts.map +1 -0
  156. package/dist/api/models/model-error.js +16 -0
  157. package/dist/api/models/model-error.js.map +1 -0
  158. package/dist/api/models/oauth-revoke-post200-response.d.ts +15 -0
  159. package/dist/api/models/oauth-revoke-post200-response.d.ts.map +1 -0
  160. package/dist/api/models/oauth-revoke-post200-response.js +16 -0
  161. package/dist/api/models/oauth-revoke-post200-response.js.map +1 -0
  162. package/dist/api/models/permission-actor.d.ts +20 -0
  163. package/dist/api/models/permission-actor.d.ts.map +1 -0
  164. package/dist/api/models/permission-actor.js +16 -0
  165. package/dist/api/models/permission-actor.js.map +1 -0
  166. package/dist/api/models/permission-mutation.d.ts +44 -0
  167. package/dist/api/models/permission-mutation.d.ts.map +1 -0
  168. package/dist/api/models/permission-mutation.js +22 -0
  169. package/dist/api/models/permission-mutation.js.map +1 -0
  170. package/dist/api/models/permission-permissible.d.ts +20 -0
  171. package/dist/api/models/permission-permissible.d.ts.map +1 -0
  172. package/dist/api/models/permission-permissible.js +16 -0
  173. package/dist/api/models/permission-permissible.js.map +1 -0
  174. package/dist/api/models/permission.d.ts +60 -0
  175. package/dist/api/models/permission.d.ts.map +1 -0
  176. package/dist/api/models/permission.js +22 -0
  177. package/dist/api/models/permission.js.map +1 -0
  178. package/dist/api/models/token-response.d.ts +41 -0
  179. package/dist/api/models/token-response.d.ts.map +1 -0
  180. package/dist/api/models/token-response.js +16 -0
  181. package/dist/api/models/token-response.js.map +1 -0
  182. package/dist/api/models/user.d.ts +18 -0
  183. package/dist/api/models/user.d.ts.map +1 -0
  184. package/dist/api/models/user.js +16 -0
  185. package/dist/api/models/user.js.map +1 -0
  186. package/dist/api/models/workspace-mutation-settings-validation.d.ts +26 -0
  187. package/dist/api/models/workspace-mutation-settings-validation.d.ts.map +1 -0
  188. package/dist/api/models/workspace-mutation-settings-validation.js +16 -0
  189. package/dist/api/models/workspace-mutation-settings-validation.js.map +1 -0
  190. package/dist/api/models/workspace-mutation-settings.d.ts +60 -0
  191. package/dist/api/models/workspace-mutation-settings.d.ts.map +1 -0
  192. package/dist/api/models/workspace-mutation-settings.js +16 -0
  193. package/dist/api/models/workspace-mutation-settings.js.map +1 -0
  194. package/dist/api/models/workspace-mutation.d.ts +44 -0
  195. package/dist/api/models/workspace-mutation.d.ts.map +1 -0
  196. package/dist/api/models/workspace-mutation.js +16 -0
  197. package/dist/api/models/workspace-mutation.js.map +1 -0
  198. package/dist/api/models/workspace-settings-validation.d.ts +26 -0
  199. package/dist/api/models/workspace-settings-validation.d.ts.map +1 -0
  200. package/dist/api/models/workspace-settings-validation.js +16 -0
  201. package/dist/api/models/workspace-settings-validation.js.map +1 -0
  202. package/dist/api/models/workspace-settings.d.ts +60 -0
  203. package/dist/api/models/workspace-settings.d.ts.map +1 -0
  204. package/dist/api/models/workspace-settings.js +16 -0
  205. package/dist/api/models/workspace-settings.js.map +1 -0
  206. package/dist/api/models/workspace.d.ts +62 -0
  207. package/dist/api/models/workspace.d.ts.map +1 -0
  208. package/dist/api/models/workspace.js +16 -0
  209. package/dist/api/models/workspace.js.map +1 -0
  210. package/dist/cli/handlers/command-handlers.d.ts +29 -0
  211. package/dist/cli/handlers/command-handlers.d.ts.map +1 -0
  212. package/dist/cli/handlers/command-handlers.js +261 -0
  213. package/dist/cli/handlers/command-handlers.js.map +1 -0
  214. package/dist/cli/handlers/engine-handlers.d.ts +15 -0
  215. package/dist/cli/handlers/engine-handlers.d.ts.map +1 -0
  216. package/dist/cli/handlers/engine-handlers.js +174 -0
  217. package/dist/cli/handlers/engine-handlers.js.map +1 -0
  218. package/dist/cli/interactive.d.ts +15 -0
  219. package/dist/cli/interactive.d.ts.map +1 -0
  220. package/dist/cli/interactive.js +234 -0
  221. package/dist/cli/interactive.js.map +1 -0
  222. package/dist/cli.js +31 -740
  223. package/dist/cli.js.map +1 -1
  224. package/dist/commands/export.d.ts +1 -1
  225. package/dist/commands/export.d.ts.map +1 -1
  226. package/dist/commands/export.js +1 -1
  227. package/dist/commands/export.js.map +1 -1
  228. package/dist/commands/import.d.ts.map +1 -1
  229. package/dist/commands/import.js +5 -1
  230. package/dist/commands/import.js.map +1 -1
  231. package/dist/index.d.ts +27 -3
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +63 -20
  234. package/dist/index.js.map +1 -1
  235. package/dist/services/hubdoc-api.d.ts +26 -6
  236. package/dist/services/hubdoc-api.d.ts.map +1 -1
  237. package/dist/services/hubdoc-api.js +194 -43
  238. package/dist/services/hubdoc-api.js.map +1 -1
  239. package/dist/services/hubdoc-export.d.ts +1 -1
  240. package/dist/services/hubdoc-export.d.ts.map +1 -1
  241. package/dist/services/hubdoc-export.js +1 -1
  242. package/dist/services/hubdoc-export.js.map +1 -1
  243. package/dist/services/oauth-token-service.d.ts +27 -14
  244. package/dist/services/oauth-token-service.d.ts.map +1 -1
  245. package/dist/services/oauth-token-service.js +147 -80
  246. package/dist/services/oauth-token-service.js.map +1 -1
  247. package/dist/services/plugin-import.d.ts +2 -2
  248. package/dist/services/plugin-import.d.ts.map +1 -1
  249. package/dist/services/plugin-import.js +2 -2
  250. package/dist/services/plugin-import.js.map +1 -1
  251. package/dist/services/plugin-manager.d.ts +6 -1
  252. package/dist/services/plugin-manager.d.ts.map +1 -1
  253. package/dist/services/plugin-manager.js +28 -2
  254. package/dist/services/plugin-manager.js.map +1 -1
  255. package/dist/types/index.d.ts +11 -37
  256. package/dist/types/index.d.ts.map +1 -1
  257. package/dist/utils/config.d.ts +30 -1
  258. package/dist/utils/config.d.ts.map +1 -1
  259. package/dist/utils/config.js +187 -40
  260. package/dist/utils/config.js.map +1 -1
  261. package/dist/utils/csv.d.ts.map +1 -1
  262. package/dist/utils/csv.js +14 -3
  263. package/dist/utils/csv.js.map +1 -1
  264. package/package.json +23 -6
  265. package/.env.example +0 -23
  266. package/BAUTECH_HubDoc_Import.pptx +0 -0
  267. package/CHANGELOG.md +0 -134
  268. package/DEMO-DOCUMENTATION.html +0 -356
  269. package/DEMO-DOCUMENTATION.md +0 -411
  270. package/EXPORT-DOCUMENTATION.md +0 -333
  271. package/HUBDOC-API-V2.md +0 -248
  272. package/INSTALL.md +0 -175
  273. package/PACKAGING.md +0 -206
  274. package/PLUGINS.md +0 -328
  275. package/PRESENTATION-CLIENT.md +0 -100
  276. package/README-hubdoc-tool.md +0 -369
  277. package/README-npm.md +0 -238
  278. package/TESTING.md +0 -129
  279. package/config-examples/README.md +0 -36
  280. package/config-examples/alfresco-config.example.json +0 -8
  281. package/config-examples/azure-blob-config.example.json +0 -7
  282. package/config-examples/box-config.example.json +0 -5
  283. package/config-examples/nuxeo-config.example.json +0 -8
  284. package/config-examples/opentext-config.example.json +0 -7
  285. package/config-examples/s3-config.example.json +0 -8
  286. package/config-examples/sharepoint-config.example.json +0 -7
  287. package/demo/README.md +0 -199
  288. package/demo/demo-script.md +0 -284
  289. package/demo/generate-sample-csv.js +0 -351
  290. package/demo/mapping_bautech_15k.csv +0 -1
  291. package/demo/simulate-import.js +0 -273
  292. package/dist/commands/export-v2.d.ts +0 -45
  293. package/dist/commands/export-v2.d.ts.map +0 -1
  294. package/dist/commands/export-v2.js +0 -369
  295. package/dist/commands/export-v2.js.map +0 -1
  296. package/dist/commands/import-v2.d.ts +0 -32
  297. package/dist/commands/import-v2.d.ts.map +0 -1
  298. package/dist/commands/import-v2.js +0 -331
  299. package/dist/commands/import-v2.js.map +0 -1
  300. package/dist/services/hubdoc-api-v2.d.ts +0 -150
  301. package/dist/services/hubdoc-api-v2.d.ts.map +0 -1
  302. package/dist/services/hubdoc-api-v2.js +0 -418
  303. package/dist/services/hubdoc-api-v2.js.map +0 -1
  304. package/dist/services/hubdoc-client.d.ts +0 -246
  305. package/dist/services/hubdoc-client.d.ts.map +0 -1
  306. package/dist/services/hubdoc-client.js +0 -714
  307. package/dist/services/hubdoc-client.js.map +0 -1
  308. package/dist/services/hubdoc-export-service.d.ts +0 -90
  309. package/dist/services/hubdoc-export-service.d.ts.map +0 -1
  310. package/dist/services/hubdoc-export-service.js +0 -443
  311. package/dist/services/hubdoc-export-service.js.map +0 -1
  312. package/dist/services/hubdoc-export-v2.d.ts +0 -77
  313. package/dist/services/hubdoc-export-v2.d.ts.map +0 -1
  314. package/dist/services/hubdoc-export-v2.js +0 -329
  315. package/dist/services/hubdoc-export-v2.js.map +0 -1
  316. package/dist/services/hubdoc-import-service.d.ts +0 -64
  317. package/dist/services/hubdoc-import-service.d.ts.map +0 -1
  318. package/dist/services/hubdoc-import-service.js +0 -374
  319. package/dist/services/hubdoc-import-service.js.map +0 -1
  320. package/docs/README.md +0 -65
  321. package/docs/connectors/alfresco.md +0 -211
  322. package/docs/connectors/aws-s3.md +0 -187
  323. package/docs/connectors/azure-blob.md +0 -195
  324. package/docs/connectors/box.md +0 -115
  325. package/docs/connectors/nuxeo.md +0 -214
  326. package/docs/connectors/opentext.md +0 -234
  327. package/docs/connectors/sharepoint.md +0 -207
  328. package/documentation.html +0 -273
  329. package/jest.config.js +0 -15
  330. package/plugins/core/README.md +0 -122
  331. package/plugins/core/TESTING.md +0 -155
  332. package/plugins/core/plugin.json +0 -26
  333. package/plugins/dropbox/plugin.json +0 -12
  334. package/plugins/filesystem/plugin.json +0 -12
  335. package/plugins/googledrive/plugin.json +0 -12
  336. package/plugins/onedrive/TESTING.md +0 -197
  337. package/plugins/onedrive/plugin.json +0 -12
  338. package/scripts/build-windows-installer.ps1 +0 -132
  339. package/scripts/build-windows-installer.sh +0 -106
  340. package/scripts/prepare-publish.js +0 -62
  341. package/scripts/restore-package.js +0 -29
@@ -1,187 +0,0 @@
1
- # AWS S3 Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers Amazon S3 et services compatibles.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `accessKeyId` : AWS Access Key ID
9
- - `secretAccessKey` : AWS Secret Access Key
10
- - `region` : Région AWS (ex: us-east-1, eu-west-1)
11
- - `bucketName` : Nom du bucket S3
12
-
13
- ### Paramètres optionnels
14
- - `prefix` : Préfixe des clés S3 pour filtrer les objets
15
- - `endpoint` : URL personnalisée pour services S3-compatibles
16
- - `limit` : Nombre maximum de documents à scanner
17
-
18
- ## Configuration AWS
19
-
20
- ### Option 1: Utilisateur IAM (Recommandé)
21
- 1. Créer un utilisateur IAM dans la [Console AWS](https://console.aws.amazon.com/iam/)
22
- 2. Attacher une politique avec les permissions S3 nécessaires
23
- 3. Générer une Access Key et Secret Key
24
- 4. Noter la région de votre bucket S3
25
-
26
- ### Exemple de politique IAM minimale
27
- ```json
28
- {
29
- "Version": "2012-10-17",
30
- "Statement": [
31
- {
32
- "Effect": "Allow",
33
- "Action": [
34
- "s3:GetObject",
35
- "s3:ListBucket"
36
- ],
37
- "Resource": [
38
- "arn:aws:s3:::your-bucket-name",
39
- "arn:aws:s3:::your-bucket-name/*"
40
- ]
41
- }
42
- ]
43
- }
44
- ```
45
-
46
- ### Pour l'export, ajouter les permissions d'écriture :
47
- ```json
48
- {
49
- "Action": [
50
- "s3:GetObject",
51
- "s3:ListBucket",
52
- "s3:PutObject",
53
- "s3:DeleteObject"
54
- ]
55
- }
56
- ```
57
-
58
- ### Option 2: Rôle IAM (Pour EC2)
59
- Si vous exécutez sur EC2, vous pouvez utiliser un rôle IAM attaché à l'instance.
60
-
61
- ## Services S3-compatibles
62
-
63
- Le connecteur supporte aussi les services compatibles S3 :
64
-
65
- ### MinIO
66
- ```json
67
- {
68
- "accessKeyId": "minio_access_key",
69
- "secretAccessKey": "minio_secret_key",
70
- "region": "us-east-1",
71
- "bucketName": "documents",
72
- "endpoint": "http://localhost:9000"
73
- }
74
- ```
75
-
76
- ### DigitalOcean Spaces
77
- ```json
78
- {
79
- "accessKeyId": "do_spaces_key",
80
- "secretAccessKey": "do_spaces_secret",
81
- "region": "nyc3",
82
- "bucketName": "my-space",
83
- "endpoint": "https://nyc3.digitaloceanspaces.com"
84
- }
85
- ```
86
-
87
- ## Utilisation
88
-
89
- ```bash
90
- # Mode interactif
91
- hubdoc-tool --engine s3
92
-
93
- # Avec limite de documents
94
- hubdoc-tool --engine s3 --limit 100
95
- ```
96
-
97
- ## Fichier de configuration
98
-
99
- Créer `s3-config.json` :
100
-
101
- ```json
102
- {
103
- "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
104
- "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
105
- "region": "eu-west-1",
106
- "bucketName": "my-documents",
107
- "prefix": "documents/",
108
- "limit": 1000
109
- }
110
- ```
111
-
112
- ## Fonctionnalités supportées
113
-
114
- ### Scan (✅)
115
- - Parcours de tous les objets dans le bucket
116
- - Support des préfixes pour filtrer
117
- - Métadonnées S3 (tags, storage class, ETag)
118
- - Filtrage par taille, date, type MIME
119
-
120
- ### Import (✅)
121
- - Téléchargement avec streaming
122
- - Support des gros fichiers
123
- - Préservation de la structure de "dossiers" (préfixes S3)
124
- - Téléchargement par lots avec contrôle de débit
125
-
126
- ### Export (✅)
127
- - Upload multipart automatique pour gros fichiers
128
- - Création de structure de préfixes
129
- - Métadonnées personnalisées
130
- - Détection automatique du Content-Type
131
-
132
- ## Gestion des "dossiers"
133
-
134
- S3 n'a pas de vraie notion de dossiers, mais utilise des préfixes :
135
- - `documents/2023/invoice.pdf`
136
- - `documents/2023/reports/monthly.xlsx`
137
-
138
- Le connecteur simule une structure de dossiers en utilisant `/` comme séparateur.
139
-
140
- ## Limitations
141
-
142
- - Taille maximale par objet : 5TB
143
- - Pas de limite sur le nombre d'objets
144
- - Les métadonnées S3 sont limitées à 2KB par objet
145
- - Le listing d'objets est paginé (1000 objets max par requête)
146
-
147
- ## Performances
148
-
149
- - **Upload** : Multipart automatique pour fichiers > 5MB
150
- - **Download** : Streaming pour économiser la mémoire
151
- - **Listing** : Pagination automatique
152
- - **Parallélisme** : Configurable via `batchSize`
153
-
154
- ## Troubleshooting
155
-
156
- ### Erreur d'accès 403
157
- - Vérifier les permissions IAM
158
- - Vérifier que le bucket existe et est accessible
159
- - Vérifier la région configurée
160
-
161
- ### Erreur de credentials
162
- - Vérifier `accessKeyId` et `secretAccessKey`
163
- - S'assurer que les credentials ne sont pas expirés
164
- - Pour les rôles IAM, vérifier que l'instance EC2 a le bon rôle
165
-
166
- ### Problèmes de réseau
167
- - Vérifier la connectivité internet
168
- - Pour les VPC, vérifier les routes et security groups
169
- - Considérer utiliser un VPC Endpoint S3 pour rester en réseau privé
170
-
171
- ## Bonnes pratiques
172
-
173
- ### Sécurité
174
- - Utiliser des rôles IAM plutôt que des access keys quand possible
175
- - Appliquer le principe du moindre privilège
176
- - Chiffrer les objets sensibles avec SSE-S3 ou SSE-KMS
177
- - Activer les logs d'accès S3
178
-
179
- ### Performance
180
- - Utiliser des préfixes distribués pour éviter les hot spots
181
- - Configurer des règles de cycle de vie pour les anciens objets
182
- - Utiliser S3 Transfer Acceleration pour les uploads depuis l'international
183
-
184
- ### Coûts
185
- - Choisir la classe de stockage appropriée (Standard, IA, Glacier)
186
- - Utiliser des règles de cycle de vie pour archiver automatiquement
187
- - Surveiller les coûts de requêtes (GET, PUT, LIST)
@@ -1,195 +0,0 @@
1
- # Azure Blob Storage Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers Azure Blob Storage.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `accountName` : Nom du compte de stockage Azure
9
- - `containerName` : Nom du conteneur blob
10
-
11
- ### Authentification (une des options requises)
12
- - **Option 1** : `accountKey` - Clé d'accès du compte de stockage
13
- - **Option 2** : `sasToken` - Token SAS (Shared Access Signature)
14
- - **Option 3** : `connectionString` - Chaîne de connexion complète
15
-
16
- ### Paramètres optionnels
17
- - `prefix` : Préfixe des blobs pour filtrer
18
- - `limit` : Nombre maximum de documents à scanner
19
-
20
- ## Configuration Azure
21
-
22
- ### Option 1: Clé de compte (Recommandé pour dev/test)
23
- 1. Aller dans le [Portail Azure](https://portal.azure.com)
24
- 2. Naviguer vers votre compte de stockage
25
- 3. Aller dans "Clés d'accès" dans le menu de gauche
26
- 4. Copier le nom du compte et une des clés
27
-
28
- ### Option 2: Token SAS (Recommandé pour production)
29
- 1. Dans votre compte de stockage, aller dans "Signature d'accès partagé"
30
- 2. Sélectionner les permissions nécessaires :
31
- - **Lecture** : Read, List (pour import)
32
- - **Écriture** : Read, Write, List, Create (pour import + export)
33
- 3. Définir la période de validité
34
- 4. Générer le token SAS
35
- 5. Copier le token généré
36
-
37
- ### Option 3: Chaîne de connexion
38
- 1. Dans "Clés d'accès", copier une des chaînes de connexion complètes
39
- 2. Format : `DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...`
40
-
41
- ## Types d'authentification supportés
42
-
43
- ### 1. Account Key
44
- ```json
45
- {
46
- "accountName": "mystorageaccount",
47
- "accountKey": "base64encodedkey==",
48
- "containerName": "documents"
49
- }
50
- ```
51
-
52
- ### 2. SAS Token
53
- ```json
54
- {
55
- "accountName": "mystorageaccount",
56
- "sasToken": "sv=2020-08-04&ss=b&srt=sco&sp=rwlacupx&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=...",
57
- "containerName": "documents"
58
- }
59
- ```
60
-
61
- ### 3. Connection String
62
- ```json
63
- {
64
- "connectionString": "DefaultEndpointsProtocol=https;AccountName=mystorageaccount;AccountKey=base64key==;EndpointSuffix=core.windows.net",
65
- "containerName": "documents"
66
- }
67
- ```
68
-
69
- ## Utilisation
70
-
71
- ```bash
72
- # Mode interactif
73
- hubdoc-tool --engine azure-blob
74
-
75
- # Avec limite de documents
76
- hubdoc-tool --engine azure-blob --limit 50
77
- ```
78
-
79
- ## Fichier de configuration
80
-
81
- Créer `azure-blob-config.json` :
82
-
83
- ```json
84
- {
85
- "accountName": "mystorageaccount",
86
- "accountKey": "your-account-key-here",
87
- "containerName": "documents",
88
- "prefix": "invoices/",
89
- "limit": 100
90
- }
91
- ```
92
-
93
- ## Fonctionnalités supportées
94
-
95
- ### Scan (✅)
96
- - Parcours de tous les blobs dans le conteneur
97
- - Support des préfixes pour filtrer (dossiers virtuels)
98
- - Métadonnées Azure (tags, properties, metadata)
99
- - Filtrage par taille, date, type MIME
100
-
101
- ### Import (✅)
102
- - Téléchargement direct vers fichier
103
- - Support des gros fichiers
104
- - Préservation de la structure de "dossiers"
105
- - Téléchargement par lots
106
-
107
- ### Export (✅)
108
- - Upload avec détection automatique du type de contenu
109
- - Métadonnées personnalisées
110
- - Création de structure de préfixes
111
- - Support des gros fichiers
112
-
113
- ## Structure des dossiers
114
-
115
- Azure Blob Storage utilise des noms de blobs avec `/` pour simuler des dossiers :
116
- - `documents/2023/invoice.pdf`
117
- - `documents/2023/reports/monthly.xlsx`
118
-
119
- Le connecteur traite ces préfixes comme une hiérarchie de dossiers.
120
-
121
- ## Types de stockage Azure
122
-
123
- ### Hot Tier (Chaud)
124
- - Accès fréquent
125
- - Coût de stockage élevé, coût d'accès faible
126
- - Par défaut pour nouveaux blobs
127
-
128
- ### Cool Tier (Froid)
129
- - Accès moins fréquent
130
- - Coût de stockage faible, coût d'accès élevé
131
- - Stockage minimum 30 jours
132
-
133
- ### Archive Tier
134
- - Accès rare
135
- - Coût de stockage très faible
136
- - Réhydratation nécessaire avant accès (plusieurs heures)
137
-
138
- ## Limitations
139
-
140
- - Taille maximale par blob : 5TB (Block Blob)
141
- - Nom de blob max : 1024 caractères
142
- - Métadonnées custom max : 8KB par blob
143
- - 50 000 blobs max par requête de listing
144
-
145
- ## Permissions SAS
146
-
147
- ### Permissions minimales pour Import
148
- - **Read** (r) : Lire le contenu des blobs
149
- - **List** (l) : Lister les blobs du conteneur
150
-
151
- ### Permissions pour Export
152
- - **Read** (r) : Lire les blobs existants
153
- - **Write** (w) : Écrire/modifier des blobs
154
- - **List** (l) : Lister les blobs
155
- - **Create** (c) : Créer de nouveaux blobs
156
-
157
- ## Troubleshooting
158
-
159
- ### Erreur 403: Forbidden
160
- - Vérifier les permissions SAS ou account key
161
- - S'assurer que le conteneur existe
162
- - Vérifier la période de validité du token SAS
163
-
164
- ### Erreur 404: Container not found
165
- - Vérifier que le nom du conteneur est correct
166
- - S'assurer que le conteneur existe dans le bon compte de stockage
167
-
168
- ### Erreur de réseau/timeout
169
- - Vérifier la connectivité internet
170
- - Augmenter la valeur de timeout si nécessaire
171
- - Vérifier les règles de firewall du compte de stockage
172
-
173
- ### Problèmes de performances
174
- - Utiliser des préfixes distribués pour éviter les goulots d'étranglement
175
- - Réduire la taille des lots si trop de requêtes simultanées
176
- - Considérer l'utilisation d'Azure CDN pour les accès en lecture
177
-
178
- ## Bonnes pratiques
179
-
180
- ### Sécurité
181
- - Utiliser des tokens SAS avec permissions minimales et expiration courte
182
- - Activer HTTPS uniquement
183
- - Configurer les règles de firewall du compte de stockage
184
- - Utiliser Azure Private Endpoints pour le trafic privé
185
-
186
- ### Performance
187
- - Utiliser des noms de blobs distribués pour éviter les partitions chaudes
188
- - Activer les logs de diagnostic pour surveiller les performances
189
- - Utiliser des CDN pour la distribution mondiale
190
-
191
- ### Coûts
192
- - Choisir le bon niveau d'accès (Hot/Cool/Archive)
193
- - Utiliser les règles de gestion du cycle de vie
194
- - Surveiller les coûts de transfert de données sortantes
195
- - Activer la compression pour réduire les coûts de stockage
@@ -1,115 +0,0 @@
1
- # Box Cloud Storage Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers Box Cloud Storage.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `accessToken` : Token d'accès Box (Bearer token)
9
-
10
- ### Paramètres optionnels
11
- - `clientId` : ID client Box (pour OAuth flow)
12
- - `clientSecret` : Secret client Box (pour OAuth flow)
13
- - `rootFolderId` : ID du dossier racine à scanner (défaut: '0' pour root)
14
- - `limit` : Nombre maximum de documents à scanner
15
-
16
- ## Obtention du token Box
17
-
18
- ### Option 1: Box Developer Console (Recommandé)
19
- 1. Aller sur [Box Developer Console](https://developer.box.com/)
20
- 2. Créer une nouvelle app ou sélectionner une app existante
21
- 3. Choisir le type d'authentification :
22
- - **Custom App** avec "Server Authentication (with JWT)" pour les apps serveur
23
- - **Custom App** avec "User Authentication (OAuth 2.0)" pour les apps utilisateur
24
- 4. Dans les paramètres de l'app, générer un "Developer Token"
25
- 5. Copier le token généré (valide 1 heure, renouvelable)
26
-
27
- ### Option 2: OAuth 2.0 Flow (Pour production)
28
- 1. Configurer les paramètres OAuth dans la Box Developer Console
29
- 2. Implémenter le flow OAuth 2.0 pour obtenir un access token
30
- 3. Utiliser le refresh token pour renouveler l'access token
31
-
32
- ## Utilisation
33
-
34
- ```bash
35
- # Mode interactif
36
- hubdoc-tool --engine box
37
-
38
- # Avec limite de documents
39
- hubdoc-tool --engine box --limit 10
40
-
41
- # Avec dossier racine spécifique
42
- hubdoc-tool --engine box
43
- # Puis configurer rootFolderId lors de la configuration
44
- ```
45
-
46
- ## Fichier de configuration
47
-
48
- Créer `box-config.json` :
49
-
50
- ```json
51
- {
52
- "accessToken": "votre_token_box",
53
- "rootFolderId": "123456789",
54
- "limit": 50
55
- }
56
- ```
57
-
58
- ## Fonctionnalités supportées
59
-
60
- ### Scan (✅)
61
- - Parcours récursif de tous les dossiers
62
- - Support des métadonnées Box (tags, description, partage)
63
- - Filtrage par taille, date, type MIME
64
-
65
- ### Import (✅)
66
- - Téléchargement avec streaming pour les gros fichiers
67
- - Préservation de la structure de dossiers
68
- - Gestion des redirections Box
69
- - Support du téléchargement par lots avec rate limiting
70
-
71
- ### Export (✅)
72
- - Upload multipart pour les gros fichiers
73
- - Création automatique de l'arborescence de dossiers
74
- - Support des métadonnées lors de l'upload
75
- - Gestion de la résolution de conflits
76
-
77
- ## Permissions requises
78
-
79
- Le token doit avoir les permissions suivantes :
80
- - `read_all_files_and_folders` : Pour scanner et télécharger
81
- - `write_all_files_and_folders` : Pour uploader (export uniquement)
82
-
83
- ## Limitations
84
-
85
- - Les Developer Tokens expirent après 1 heure
86
- - Rate limiting : 10 requêtes par seconde par défaut
87
- - Taille maximale d'upload : 5GB par fichier
88
- - Les fichiers partagés publiquement peuvent avoir des restrictions d'accès
89
-
90
- ## Troubleshooting
91
-
92
- ### Erreur 401: Token invalide
93
- - Vérifier que le token n'a pas expiré (1h pour Developer Token)
94
- - Régénérer un nouveau Developer Token
95
- - Vérifier les permissions de l'app Box
96
-
97
- ### Erreur 403: Accès refusé
98
- - Vérifier les permissions de l'app sur les dossiers/fichiers
99
- - S'assurer que l'utilisateur a accès au contenu demandé
100
-
101
- ### Erreur 429: Rate limit
102
- - Le plugin gère automatiquement le rate limiting avec des délais
103
- - Réduire la taille des lots avec `batchSize`
104
-
105
- ## API Box utilisée
106
-
107
- - **API Version** : Box API v2.0
108
- - **Base URL** : `https://api.box.com/2.0`
109
- - **Documentation** : [Box API Docs](https://developer.box.com/reference/)
110
-
111
- ### Endpoints utilisés
112
- - `GET /folders/{id}/items` : Liste le contenu d'un dossier
113
- - `GET /files/{id}/content` : Télécharge le contenu d'un fichier
114
- - `POST /files/content` : Upload un nouveau fichier
115
- - `POST /folders` : Crée un nouveau dossier
@@ -1,214 +0,0 @@
1
- # Nuxeo ECM Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers Nuxeo Platform.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `baseUrl` : URL de base Nuxeo (ex: http://localhost:8080/nuxeo)
9
- - `username` : Nom d'utilisateur Nuxeo
10
- - `password` : Mot de passe Nuxeo
11
-
12
- ### Paramètres optionnels
13
- - `repository` : Nom du repository (défaut: 'default')
14
- - `rootPath` : Chemin de départ (défaut: '/default-domain/workspaces')
15
- - `limit` : Nombre maximum de documents à scanner
16
-
17
- ## Configuration Nuxeo
18
-
19
- ### Prérequis
20
- - Nuxeo Platform 10.10+ ou Nuxeo Cloud
21
- - API REST Nuxeo activée
22
- - Utilisateur avec permissions appropriées
23
-
24
- ### Vérification de l'API
25
- 1. Tester l'accès : `http://your-nuxeo/nuxeo/api/v1/user/Administrator`
26
- 2. Vérifier l'authentification
27
- 3. Contrôler l'accès aux workspaces
28
-
29
- ## Structure Nuxeo
30
-
31
- ### Hiérarchie standard
32
- ```
33
- /default-domain/
34
- ├── workspaces/ # Documents de travail
35
- │ ├── project-a/
36
- │ └── project-b/
37
- ├── sections/ # Publications
38
- └── templates/ # Modèles
39
- ```
40
-
41
- ### Types de documents Nuxeo
42
- - **File** : Document avec contenu binaire
43
- - **Folder** : Dossier conteneur
44
- - **Workspace** : Espace de travail collaboratif
45
- - **Note** : Document texte simple
46
- - Types personnalisés selon votre configuration
47
-
48
- ## Utilisation
49
-
50
- ```bash
51
- # Mode interactif
52
- hubdoc-tool --engine nuxeo
53
-
54
- # Avec chemin spécifique
55
- hubdoc-tool --engine nuxeo
56
- # Configurer rootPath: /default-domain/workspaces/my-project
57
- ```
58
-
59
- ## Fichier de configuration
60
-
61
- Créer `nuxeo-config.json` :
62
-
63
- ```json
64
- {
65
- "baseUrl": "https://nuxeo.example.com/nuxeo",
66
- "username": "Administrator",
67
- "password": "Administrator",
68
- "repository": "default",
69
- "rootPath": "/default-domain/workspaces",
70
- "limit": 100
71
- }
72
- ```
73
-
74
- ### Configuration avancée
75
- ```json
76
- {
77
- "baseUrl": "https://cloud.nuxeocloud.com/nuxeo",
78
- "username": "user@example.com",
79
- "password": "secure-password",
80
- "repository": "default",
81
- "rootPath": "/default-domain/workspaces/project-documents",
82
- "limit": 500
83
- }
84
- ```
85
-
86
- ## Fonctionnalités supportées
87
-
88
- ### Scan (✅)
89
- - Requêtes NXQL pour parcours efficace
90
- - Support de tous les types de documents
91
- - Métadonnées complètes Nuxeo (schemas, facets)
92
- - États du cycle de vie
93
- - Filtrage par taille, date, type MIME
94
-
95
- ### Import (✅)
96
- - Téléchargement via endpoint blob
97
- - Préservation de la structure de dossiers
98
- - Conservation des métadonnées Dublin Core
99
- - Support des versions de documents
100
-
101
- ### Export (✅)
102
- - Upload multipart pour gros fichiers
103
- - Création automatique de l'arborescence
104
- - Assignment du type `File`
105
- - Métadonnées Dublin Core de base
106
-
107
- ## Métadonnées Nuxeo
108
-
109
- ### Schemas standard extraités
110
- - **Dublin Core** : title, description, creator, created, modified
111
- - **File Schema** : filename, content, mime-type, length
112
- - **Common Schema** : icon, size
113
- - **UID Schema** : uid, major_version, minor_version
114
-
115
- ### États et cycle de vie
116
- - **project** : Brouillon de travail
117
- - **approved** : Document approuvé
118
- - **obsolete** : Document obsolète
119
- - États personnalisés selon configuration
120
-
121
- ## API Nuxeo utilisée
122
-
123
- ### Version API
124
- - **API REST** : Nuxeo REST API v1
125
- - **Base Path** : `/api/v1/repo/{repository}`
126
- - **Documentation** : [Nuxeo REST API](https://doc.nuxeo.com/nxdoc/rest-api/)
127
-
128
- ### Endpoints utilisés
129
- - `GET /search/lang/NXQL/execute` : Requêtes NXQL
130
- - `GET /id/{docId}/@blob/file:content` : Télécharge le contenu
131
- - `POST /path/{path}` : Crée un nouveau document
132
- - `GET /path/{path}` : Accède à un document par chemin
133
-
134
- ### Requêtes NXQL
135
- ```sql
136
- -- Tous les documents sous un chemin
137
- SELECT * FROM Document
138
- WHERE ecm:path STARTSWITH '/default-domain/workspaces'
139
- AND ecm:isVersion = 0
140
- AND ecm:isTrashed = 0
141
-
142
- -- Documents avec contenu binaire uniquement
143
- SELECT * FROM File
144
- WHERE file:content IS NOT NULL
145
- ```
146
-
147
- ## Limitations
148
-
149
- ### Nuxeo Platform
150
- - Pagination max : 1000 documents par défaut
151
- - Timeout par défaut : 30 secondes
152
- - Pas de support transactionnel via REST
153
-
154
- ### Types de contenu
155
- - Le connecteur crée uniquement des documents de type `File`
156
- - Les métadonnées complexes ne sont pas préservées à l'export
157
- - Les relations entre documents ne sont pas maintenues
158
-
159
- ### Performance
160
- - Les requêtes NXQL peuvent être lentes sur de gros volumes
161
- - L'indexation Elasticsearch peut créer des délais
162
-
163
- ## Troubleshooting
164
-
165
- ### Erreur 401: Authentication failed
166
- - Vérifier username/password
167
- - Contrôler que l'utilisateur est actif
168
- - Tester la connexion via interface web
169
-
170
- ### Erreur 403: Access denied
171
- - Vérifier les permissions sur le workspace/dossier
172
- - Contrôler les groupes d'appartenance de l'utilisateur
173
- - Vérifier les ACL Nuxeo
174
-
175
- ### Erreur 404: Path not found
176
- - Vérifier que le rootPath existe
177
- - Contrôler l'orthographe du chemin
178
- - S'assurer que l'utilisateur a accès au chemin
179
-
180
- ### Performance lente
181
- - Réduire la portée du scan avec rootPath
182
- - Utiliser des filtres appropriés
183
- - Vérifier les performances de la base de données
184
- - Contrôler l'état de l'indexation Elasticsearch
185
-
186
- ## Bonnes pratiques
187
-
188
- ### Organisation des contenus
189
- - Organiser les documents en workspaces thématiques
190
- - Utiliser des structures de dossiers logiques
191
- - Implémenter des conventions de nommage
192
-
193
- ### Métadonnées
194
- - Définir des schémas de métadonnées appropriés
195
- - Utiliser des vocabulaires contrôlés
196
- - Configurer des champs obligatoires
197
-
198
- ### Sécurité
199
- - Utiliser HTTPS pour les connexions
200
- - Créer des utilisateurs techniques avec permissions minimales
201
- - Auditer les accès aux contenus sensibles
202
- - Configurer l'authentification LDAP/AD si approprié
203
-
204
- ### Performance
205
- - Optimiser les index de base de données
206
- - Configurer Elasticsearch correctement
207
- - Utiliser des quotas d'espace disque appropriés
208
- - Planifier les opérations lourdes en dehors des heures de pointe
209
-
210
- ### Maintenance
211
- - Surveiller les logs Nuxeo (server.log)
212
- - Effectuer des sauvegardes régulières du repository
213
- - Nettoyer les versions et documents supprimés
214
- - Maintenir les index Elasticsearch à jour