@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,234 +0,0 @@
1
- # OpenText Content Server Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers OpenText Content Server.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `baseUrl` : URL de base Content Server (ex: http://localhost/otcs/cs.exe/api/v1)
9
-
10
- ### Authentification (une des options requises)
11
- - **Option 1** : `username` + `password` - Authentification standard
12
- - **Option 2** : `ticket` - Ticket OTDS (OpenText Directory Services)
13
-
14
- ### Paramètres optionnels
15
- - `startingFolderId` : ID du dossier de départ (défaut: 2000 = Enterprise workspace)
16
- - `limit` : Nombre maximum de documents à scanner
17
-
18
- ## Configuration OpenText
19
-
20
- ### Prérequis
21
- - OpenText Content Server 16.x ou 20.x+
22
- - API REST activée
23
- - Utilisateur avec permissions appropriées ou ticket OTDS valide
24
-
25
- ### Structure des nœuds OpenText
26
- - **2000** : Enterprise (racine principale)
27
- - **Type 0** : Folder (dossier)
28
- - **Type 144** : Document (document standard)
29
- - **Type 136** : Shortcut (raccourci)
30
- - Autres types selon configuration
31
-
32
- ## Authentification
33
-
34
- ### Option 1: Username/Password
35
- ```json
36
- {
37
- "baseUrl": "http://content-server/otcs/cs.exe/api/v1",
38
- "username": "admin",
39
- "password": "admin",
40
- "startingFolderId": 2000
41
- }
42
- ```
43
-
44
- ### Option 2: Ticket OTDS
45
- ```json
46
- {
47
- "baseUrl": "http://content-server/otcs/cs.exe/api/v1",
48
- "ticket": "otds-ticket-string-here",
49
- "startingFolderId": 2000
50
- }
51
- ```
52
-
53
- ## Obtention du ticket OTDS
54
-
55
- ### Via interface OTDS
56
- 1. Se connecter à OpenText Directory Services
57
- 2. Obtenir un ticket d'authentification valide
58
- 3. Utiliser ce ticket dans la configuration
59
-
60
- ### Via API d'authentification
61
- 1. Appeler l'endpoint d'authentification Content Server
62
- 2. Récupérer le ticket de la réponse
63
- 3. Le ticket expire selon la politique configurée
64
-
65
- ## Utilisation
66
-
67
- ```bash
68
- # Mode interactif
69
- hubdoc-tool --engine opentext
70
-
71
- # Avec dossier de départ spécifique
72
- hubdoc-tool --engine opentext
73
- # Configurer startingFolderId: 123456
74
- ```
75
-
76
- ## Fichier de configuration
77
-
78
- Créer `opentext-config.json` :
79
-
80
- ```json
81
- {
82
- "baseUrl": "https://contentserver.example.com/otcs/cs.exe/api/v1",
83
- "username": "serviceuser",
84
- "password": "secure-password",
85
- "startingFolderId": 2000,
86
- "limit": 200
87
- }
88
- ```
89
-
90
- ## Fonctionnalités supportées
91
-
92
- ### Scan (✅)
93
- - Parcours récursif des nœuds/dossiers
94
- - Support de tous les types de nœuds
95
- - Métadonnées complètes OpenText
96
- - États de réservation (check-out)
97
- - Filtrage par taille, date, type MIME
98
-
99
- ### Import (✅)
100
- - Téléchargement du contenu binaire
101
- - Préservation de la hiérarchie de nœuds
102
- - Conservation des métadonnées OpenText
103
- - Support des versions de documents
104
-
105
- ### Export (✅)
106
- - Upload multipart pour gros fichiers
107
- - Création automatique de l'arborescence de nœuds
108
- - Assignment du type Document (144)
109
- - Métadonnées de base
110
-
111
- ## Types de nœuds OpenText
112
-
113
- ### Types standard
114
- - **0** : Folder (Dossier)
115
- - **144** : Document (Document standard)
116
- - **136** : Shortcut (Raccourci)
117
- - **207** : URL (Lien web)
118
- - **298** : Email (Message email)
119
-
120
- ### Propriétés des nœuds
121
- - **ID** : Identifiant unique du nœud
122
- - **Name** : Nom d'affichage
123
- - **Type** : Type de nœud (numérique)
124
- - **Parent ID** : ID du nœud parent
125
- - **Created/Modified** : Dates de création/modification
126
- - **Size** : Taille du contenu (pour documents)
127
- - **Reserved** : État de réservation
128
-
129
- ## API OpenText utilisée
130
-
131
- ### Version API
132
- - **API REST** : Content Server REST API v1 ou v2
133
- - **Base Path** : `/api/v1` ou `/api/v2`
134
- - **Documentation** : OpenText Developer Portal
135
-
136
- ### Endpoints utilisés
137
- - `GET /nodes/{id}/nodes` : Liste les nœuds enfants
138
- - `GET /nodes/{id}/content` : Télécharge le contenu
139
- - `POST /nodes/{id}/nodes` : Crée un nouveau nœud
140
- - `GET /nodes/{id}/ancestors` : Obtient la hiérarchie parente
141
- - `POST /auth` : Authentification
142
-
143
- ## Métadonnées OpenText
144
-
145
- ### Propriétés standard extraites
146
- - **Basic** : id, name, type, type_name, container
147
- - **Audit** : create_date, modify_date, created_by, modified_by
148
- - **Content** : size, mime_type, version_number
149
- - **Status** : reserved, reserved_by, reserved_date
150
- - **Hierarchy** : parent_id, ancestors
151
-
152
- ### Catégories et attributs
153
- OpenText supporte des catégories avec attributs personnalisés :
154
- - Attributs texte, numérique, date
155
- - Listes de valeurs contrôlées
156
- - Attributs multi-valuées
157
-
158
- ## Permissions OpenText
159
-
160
- ### Niveaux de permission
161
- - **See** : Voir le nœud dans les listes
162
- - **See Contents** : Voir le contenu d'un dossier
163
- - **Modify** : Modifier les propriétés
164
- - **Edit Attributes** : Modifier les catégories
165
- - **Add Items** : Ajouter des éléments
166
- - **Reserve** : Réserver pour modification
167
- - **Full Control** : Contrôle total
168
-
169
- ## Limitations
170
-
171
- ### Content Server
172
- - Limite de 32 000 nœuds par requête de listing
173
- - Nom de nœud max : 248 caractères
174
- - Profondeur max recommandée : 20 niveaux
175
-
176
- ### API REST
177
- - Timeout par défaut variable selon configuration
178
- - Pagination requise pour gros volumes
179
- - Certaines opérations avancées nécessitent des permissions élevées
180
-
181
- ### Performance
182
- - Les requêtes sur de gros volumes peuvent être lentes
183
- - L'indexation peut impacter les performances
184
- - Les permissions complexes ralentissent les accès
185
-
186
- ## Troubleshooting
187
-
188
- ### Erreur 401: Authentication required
189
- - Vérifier username/password ou validité du ticket
190
- - Contrôler que l'utilisateur existe et est actif
191
- - Tester l'accès via interface web
192
-
193
- ### Erreur 403: Insufficient privileges
194
- - Vérifier les permissions sur le nœud de départ
195
- - Contrôler les droits de l'utilisateur/groupe
196
- - S'assurer des permissions See Contents sur les dossiers parents
197
-
198
- ### Erreur 404: Node not found
199
- - Vérifier que le startingFolderId existe
200
- - Contrôler l'ID du nœud (numérique)
201
- - Tester l'accès via interface Content Server
202
-
203
- ### Performance lente
204
- - Réduire la portée avec startingFolderId approprié
205
- - Utiliser des filtres pour limiter les résultats
206
- - Vérifier les performances du serveur de base de données
207
- - Contrôler l'état de l'indexation Verity/FAST
208
-
209
- ## Bonnes pratiques
210
-
211
- ### Organisation
212
- - Utiliser une hiérarchie de dossiers logique et équilibrée
213
- - Éviter les dossiers avec trop de nœuds enfants
214
- - Implémenter des conventions de nommage cohérentes
215
- - Utiliser les catégories pour la classification
216
-
217
- ### Sécurité
218
- - Créer des utilisateurs techniques avec permissions minimales
219
- - Utiliser HTTPS pour les connexions
220
- - Configurer l'authentification LDAP/AD
221
- - Auditer les accès aux contenus sensibles
222
-
223
- ### Performance
224
- - Optimiser les index de base de données
225
- - Configurer le cache Content Server approprié
226
- - Planifier les opérations lourdes en maintenance
227
- - Surveiller l'utilisation des ressources système
228
-
229
- ### Maintenance
230
- - Surveiller les logs Content Server (oscript.log, server.log)
231
- - Effectuer des sauvegardes régulières
232
- - Nettoyer les nœuds supprimés et versions anciennes
233
- - Maintenir les statistiques de base de données à jour
234
- - Surveiller l'espace disque (contenu et logs)
@@ -1,207 +0,0 @@
1
- # SharePoint Online Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers SharePoint Online via Microsoft Graph API.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `siteUrl` : URL du site SharePoint (ex: https://contoso.sharepoint.com/sites/mysite)
9
- - `accessToken` : Token d'accès Microsoft Graph
10
-
11
- ### Paramètres optionnels
12
- - `driveId` : ID du drive spécifique (optionnel, utilise le drive par défaut)
13
- - `folderId` : ID du dossier de départ (optionnel, utilise la racine)
14
- - `limit` : Nombre maximum de documents à scanner
15
-
16
- ## Obtention du token Microsoft Graph
17
-
18
- ### Option 1: Graph Explorer (Recommandé pour tests)
19
- 1. Aller sur [Microsoft Graph Explorer](https://developer.microsoft.com/en-us/graph/graph-explorer)
20
- 2. Se connecter avec votre compte Microsoft 365
21
- 3. Dans l'onglet "Permissions", demander les permissions nécessaires :
22
- - `Sites.Read.All` : Lecture des sites SharePoint
23
- - `Files.Read.All` : Lecture des fichiers
24
- - `Files.ReadWrite.All` : Lecture/écriture (pour export)
25
- 4. Copier le token depuis les en-têtes de requête
26
-
27
- ### Option 2: Azure App Registration (Production)
28
- 1. Créer une app registration dans [Azure Portal](https://portal.azure.com)
29
- 2. Configurer les permissions d'API :
30
- - Microsoft Graph API
31
- - Permissions déléguées ou d'application selon besoin
32
- 3. Implémenter le flow OAuth 2.0 approprié
33
- 4. Obtenir un access token valide
34
-
35
- ## Structure SharePoint
36
-
37
- ### Sites et drives
38
- SharePoint organise le contenu en :
39
- - **Sites** : Collections de listes, bibliothèques et pages
40
- - **Drives** : Bibliothèques de documents au sein des sites
41
- - **Items** : Fichiers et dossiers dans les drives
42
-
43
- ### Exemples d'URL SharePoint
44
- ```
45
- https://contoso.sharepoint.com/sites/project-alpha
46
- https://contoso.sharepoint.com/sites/hr/finance
47
- https://contoso-my.sharepoint.com/personal/user_contoso_com
48
- ```
49
-
50
- ## Utilisation
51
-
52
- ```bash
53
- # Mode interactif
54
- hubdoc-tool --engine sharepoint
55
-
56
- # Avec limite de documents
57
- hubdoc-tool --engine sharepoint --limit 100
58
- ```
59
-
60
- ## Fichier de configuration
61
-
62
- Créer `sharepoint-config.json` :
63
-
64
- ```json
65
- {
66
- "siteUrl": "https://contoso.sharepoint.com/sites/documents",
67
- "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
68
- "limit": 50
69
- }
70
- ```
71
-
72
- ### Avec drive spécifique
73
- ```json
74
- {
75
- "siteUrl": "https://contoso.sharepoint.com/sites/project",
76
- "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
77
- "driveId": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd",
78
- "folderId": "01BYE5RZ6QN3ZWBTUBEFD3GSPGOHDJD36K"
79
- }
80
- ```
81
-
82
- ## Fonctionnalités supportées
83
-
84
- ### Scan (✅)
85
- - Parcours récursif de tous les dossiers
86
- - Support des drives multiples
87
- - Métadonnées SharePoint complètes
88
- - Versions de fichiers et historique
89
- - Filtrage par taille, date, type MIME
90
-
91
- ### Import (✅)
92
- - Téléchargement avec streaming
93
- - Préservation de la structure de dossiers
94
- - Conservation des métadonnées SharePoint
95
- - Support des gros fichiers
96
-
97
- ### Export (✅)
98
- - Upload simple pour fichiers < 4MB
99
- - Sessions d'upload résistantes pour gros fichiers
100
- - Création automatique de l'arborescence
101
- - Métadonnées personnalisées
102
-
103
- ## Permissions Microsoft Graph
104
-
105
- ### Permissions déléguées (utilisateur connecté)
106
- - `Sites.Read.All` : Lecture de tous les sites
107
- - `Files.Read.All` : Lecture de tous les fichiers
108
- - `Files.ReadWrite.All` : Lecture/écriture de tous les fichiers
109
-
110
- ### Permissions d'application (daemon)
111
- - `Sites.Read.All` : Lecture de tous les sites sans utilisateur connecté
112
- - `Files.Read.All` : Lecture de tous les fichiers
113
- - `Files.ReadWrite.All` : Lecture/écriture de tous les fichiers
114
-
115
- ## API Microsoft Graph utilisée
116
-
117
- ### Version API
118
- - **API Version** : Microsoft Graph v1.0
119
- - **Base URL** : `https://graph.microsoft.com/v1.0`
120
- - **Documentation** : [Microsoft Graph SharePoint API](https://docs.microsoft.com/en-us/graph/api/resources/sharepoint)
121
-
122
- ### Endpoints utilisés
123
- - `GET /sites/{hostname}:{path}` : Obtient les infos du site
124
- - `GET /sites/{siteId}/drive` : Drive par défaut du site
125
- - `GET /drives/{driveId}/items/{itemId}/children` : Contenu d'un dossier
126
- - `GET /drives/{driveId}/items/{itemId}/content` : Télécharge un fichier
127
- - `PUT /drives/{driveId}/items/{parentId}:/{filename}:/content` : Upload un fichier
128
-
129
- ## Types de fichiers SharePoint
130
-
131
- ### Bibliothèques de documents
132
- - Documents généraux
133
- - Images et médias
134
- - Formulaires et modèles
135
- - Pages SharePoint
136
-
137
- ### Métadonnées disponibles
138
- - **Standard** : nom, taille, dates de création/modification
139
- - **SharePoint** : colonnes personnalisées, types de contenu
140
- - **Versions** : historique des versions du document
141
- - **Check-out** : statut de réservation
142
- - **Audit** : qui a créé/modifié et quand
143
-
144
- ## Limitations
145
-
146
- ### Quotas et limites
147
- - Taille max par fichier : 250GB
148
- - Stockage par site : 25TB par défaut
149
- - API throttling : jusqu'à 10 000 requêtes par 10 minutes
150
-
151
- ### Restrictions de noms
152
- - Caractères interdits : `" * : < > ? / \ |`
153
- - Noms de fichiers réservés : `CON`, `PRN`, `AUX`, etc.
154
- - Longueur max du chemin : 400 caractères
155
-
156
- ### Performances
157
- - Upload simultané recommandé : max 2-3 fichiers
158
- - Taille minimum pour upload résistant : 4MB
159
- - Timeout par défaut : 30 secondes
160
-
161
- ## Troubleshooting
162
-
163
- ### Erreur 401: Token invalide/expiré
164
- - Vérifier que le token n'a pas expiré
165
- - Régénérer un nouveau token Graph Explorer
166
- - Vérifier les permissions demandées
167
-
168
- ### Erreur 403: Accès refusé
169
- - Vérifier les permissions sur le site SharePoint
170
- - S'assurer que l'utilisateur a accès au contenu
171
- - Contrôler les permissions Graph API accordées
172
-
173
- ### Erreur 404: Site/Drive non trouvé
174
- - Vérifier l'URL du site SharePoint
175
- - S'assurer que le site existe et est accessible
176
- - Contrôler l'orthographe de l'URL
177
-
178
- ### Erreur 429: Too Many Requests
179
- - Le plugin gère automatiquement le throttling
180
- - Réduire le nombre de requêtes simultanées
181
- - Utiliser des pauses entre les lots
182
-
183
- ## Bonnes pratiques
184
-
185
- ### Sécurité
186
- - Utiliser des tokens avec durée de vie limitée
187
- - Appliquer le principe du moindre privilège
188
- - Auditer les accès aux contenus sensibles
189
- - Utiliser Azure Conditional Access
190
-
191
- ### Performance
192
- - Organiser les fichiers en hiérarchies équilibrées
193
- - Éviter les dossiers avec trop de fichiers (>5000)
194
- - Utiliser la fonctionnalité de recherche SharePoint
195
- - Implémenter des règles de rétention
196
-
197
- ### Gouvernance
198
- - Définir des types de contenu SharePoint appropriés
199
- - Configurer des colonnes de métadonnées obligatoires
200
- - Utiliser les politiques de conformité Microsoft 365
201
- - Planifier la sauvegarde et la récupération
202
-
203
- ### Développement
204
- - Implémenter une gestion robuste des erreurs
205
- - Utiliser les notifications webhook pour les changements
206
- - Optimiser les requêtes Graph avec $select et $expand
207
- - Mettre en cache les informations de structure