@sinoia/hubdoc-tools 1.0.3 → 1.2.0

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 -739
  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.js +1 -1
  229. package/dist/commands/import.js.map +1 -1
  230. package/dist/index.d.ts +27 -3
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +62 -20
  233. package/dist/index.js.map +1 -1
  234. package/dist/services/hubdoc-api.d.ts +5 -0
  235. package/dist/services/hubdoc-api.d.ts.map +1 -1
  236. package/dist/services/hubdoc-api.js +48 -26
  237. package/dist/services/hubdoc-api.js.map +1 -1
  238. package/dist/services/hubdoc-export.d.ts +1 -1
  239. package/dist/services/hubdoc-export.d.ts.map +1 -1
  240. package/dist/services/hubdoc-export.js +1 -1
  241. package/dist/services/hubdoc-export.js.map +1 -1
  242. package/dist/services/oauth-token-service.d.ts +27 -14
  243. package/dist/services/oauth-token-service.d.ts.map +1 -1
  244. package/dist/services/oauth-token-service.js +147 -80
  245. package/dist/services/oauth-token-service.js.map +1 -1
  246. package/dist/services/plugin-import.d.ts +2 -2
  247. package/dist/services/plugin-import.d.ts.map +1 -1
  248. package/dist/services/plugin-import.js +2 -2
  249. package/dist/services/plugin-import.js.map +1 -1
  250. package/dist/services/plugin-manager.d.ts +1 -1
  251. package/dist/services/plugin-manager.d.ts.map +1 -1
  252. package/dist/services/plugin-manager.js +2 -2
  253. package/dist/services/plugin-manager.js.map +1 -1
  254. package/dist/types/index.d.ts +12 -37
  255. package/dist/types/index.d.ts.map +1 -1
  256. package/dist/utils/config.d.ts +30 -1
  257. package/dist/utils/config.d.ts.map +1 -1
  258. package/dist/utils/config.js +187 -40
  259. package/dist/utils/config.js.map +1 -1
  260. package/dist/utils/csv.d.ts +1 -0
  261. package/dist/utils/csv.d.ts.map +1 -1
  262. package/dist/utils/csv.js +21 -0
  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 -127
  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,374 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HubDocImportService = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
8
- const csv_parser_1 = __importDefault(require("csv-parser"));
9
- const path_1 = __importDefault(require("path"));
10
- const hubdoc_client_1 = require("./hubdoc-client");
11
- const concurrent_processor_1 = require("../utils/concurrent-processor");
12
- const chalk_1 = __importDefault(require("chalk"));
13
- /**
14
- * Service for importing documents to HubDoc using CSV mapping files
15
- */
16
- class HubDocImportService {
17
- constructor(config) {
18
- this.config = config;
19
- this.client = new hubdoc_client_1.HubDocClient(config);
20
- }
21
- /**
22
- * Test connection to HubDoc API
23
- */
24
- async testConnection() {
25
- return await this.client.testConnection();
26
- }
27
- /**
28
- * Parse CSV mapping file into DocumentMapping objects
29
- */
30
- async parseMappingFile(filePath, baseDir) {
31
- if (!await fs_extra_1.default.pathExists(filePath)) {
32
- throw new Error(`Mapping file not found: ${filePath}`);
33
- }
34
- console.log(chalk_1.default.blue(`📋 Parsing mapping file: ${filePath}`));
35
- return new Promise((resolve, reject) => {
36
- const mappings = [];
37
- const errors = [];
38
- fs_extra_1.default.createReadStream(filePath)
39
- .pipe((0, csv_parser_1.default)())
40
- .on('data', (row, index) => {
41
- try {
42
- const mapping = this.parseRowToMapping(row, index + 1, baseDir);
43
- if (mapping) {
44
- mappings.push(mapping);
45
- }
46
- }
47
- catch (error) {
48
- errors.push(`Row ${index + 2}: ${error.message}`);
49
- }
50
- })
51
- .on('end', () => {
52
- if (errors.length > 0) {
53
- console.error(chalk_1.default.red('❌ CSV parsing errors:'));
54
- errors.forEach(error => console.error(chalk_1.default.red(` ${error}`)));
55
- reject(new Error(`${errors.length} errors found in CSV file`));
56
- }
57
- else {
58
- console.log(chalk_1.default.green(`✅ Parsed ${mappings.length} mappings from CSV`));
59
- resolve(mappings);
60
- }
61
- })
62
- .on('error', reject);
63
- });
64
- }
65
- /**
66
- * Parse CSV row into DocumentMapping object
67
- */
68
- parseRowToMapping(row, rowNumber, baseDir) {
69
- // Skip empty rows
70
- if (!row.filePath && !row.file_path && !row.sourcePath && !row.source_path) {
71
- return null;
72
- }
73
- // Get file path (support multiple column names)
74
- const filePath = row.filePath || row.file_path || row.sourcePath || row.source_path;
75
- if (!filePath) {
76
- throw new Error('Missing file path column (expected: filePath, file_path, sourcePath, or source_path)');
77
- }
78
- // Resolve full path
79
- const fullFilePath = path_1.default.isAbsolute(filePath) ? filePath :
80
- path_1.default.resolve(baseDir || process.cwd(), filePath);
81
- // Build mapping object
82
- const mapping = {
83
- filePath: fullFilePath,
84
- workspace: row.workspace || row.workspaceName || row.workspace_name,
85
- targetFolder: row.targetFolder || row.target_folder || row.folderPath || row.folder_path,
86
- domain: row.domain,
87
- metadata: {}
88
- };
89
- // Parse metadata from additional columns
90
- const metadataColumns = ['title', 'description', 'category', 'tags', 'author', 'project', 'client'];
91
- metadataColumns.forEach(col => {
92
- if (row[col]) {
93
- mapping.metadata[col] = row[col];
94
- }
95
- });
96
- // Parse custom metadata (JSON columns)
97
- if (row.metadata) {
98
- try {
99
- mapping.metadata = { ...mapping.metadata, ...JSON.parse(row.metadata) };
100
- }
101
- catch (error) {
102
- console.warn(chalk_1.default.yellow(`⚠️ Row ${rowNumber}: Invalid JSON in metadata column, ignoring`));
103
- }
104
- }
105
- // Parse permissions
106
- if (row.permissions) {
107
- try {
108
- mapping.permissions = JSON.parse(row.permissions);
109
- }
110
- catch (error) {
111
- console.warn(chalk_1.default.yellow(`⚠️ Row ${rowNumber}: Invalid JSON in permissions column, ignoring`));
112
- }
113
- }
114
- else {
115
- // Build permissions from individual columns
116
- const permissions = {};
117
- if (row.readUsers || row.read_users) {
118
- permissions.read = {
119
- users: (row.readUsers || row.read_users).split(',').map((u) => u.trim())
120
- };
121
- }
122
- if (row.writeUsers || row.write_users) {
123
- permissions.write = {
124
- users: (row.writeUsers || row.write_users).split(',').map((u) => u.trim())
125
- };
126
- }
127
- if (row.readGroups || row.read_groups) {
128
- permissions.read = {
129
- ...permissions.read,
130
- groups: (row.readGroups || row.read_groups).split(',').map((g) => g.trim())
131
- };
132
- }
133
- if (row.writeGroups || row.write_groups) {
134
- permissions.write = {
135
- ...permissions.write,
136
- groups: (row.writeGroups || row.write_groups).split(',').map((g) => g.trim())
137
- };
138
- }
139
- if (Object.keys(permissions).length > 0) {
140
- mapping.permissions = permissions;
141
- }
142
- }
143
- return mapping;
144
- }
145
- /**
146
- * Validate mapping file and mappings
147
- */
148
- async validateMappings(mappings) {
149
- const result = {
150
- valid: true,
151
- errors: [],
152
- warnings: [],
153
- mappingCount: mappings.length
154
- };
155
- console.log(chalk_1.default.blue(`🔍 Validating ${mappings.length} mappings...`));
156
- for (let i = 0; i < mappings.length; i++) {
157
- const mapping = mappings[i];
158
- const rowNum = i + 1;
159
- // Check if file exists
160
- if (!await fs_extra_1.default.pathExists(mapping.filePath)) {
161
- result.errors.push(`Row ${rowNum}: File not found: ${mapping.filePath}`);
162
- result.valid = false;
163
- continue;
164
- }
165
- // Check file size
166
- try {
167
- const stats = await fs_extra_1.default.stat(mapping.filePath);
168
- if (stats.size === 0) {
169
- result.warnings.push(`Row ${rowNum}: File is empty: ${mapping.filePath}`);
170
- }
171
- else if (stats.size > 100 * 1024 * 1024) { // 100MB
172
- result.warnings.push(`Row ${rowNum}: Large file (${Math.round(stats.size / 1024 / 1024)}MB): ${mapping.filePath}`);
173
- }
174
- }
175
- catch (error) {
176
- result.errors.push(`Row ${rowNum}: Cannot read file: ${mapping.filePath}`);
177
- result.valid = false;
178
- }
179
- // Validate workspace name
180
- if (mapping.workspace && mapping.workspace.length > 255) {
181
- result.errors.push(`Row ${rowNum}: Workspace name too long (max 255 chars): ${mapping.workspace}`);
182
- result.valid = false;
183
- }
184
- // Validate folder path
185
- if (mapping.targetFolder) {
186
- if (mapping.targetFolder.length > 1000) {
187
- result.errors.push(`Row ${rowNum}: Folder path too long (max 1000 chars): ${mapping.targetFolder}`);
188
- result.valid = false;
189
- }
190
- // Check for invalid characters
191
- const invalidChars = /[<>:"|?*]/;
192
- if (invalidChars.test(mapping.targetFolder)) {
193
- result.errors.push(`Row ${rowNum}: Invalid characters in folder path: ${mapping.targetFolder}`);
194
- result.valid = false;
195
- }
196
- }
197
- // Validate domain
198
- if (mapping.domain && mapping.domain.length > 100) {
199
- result.errors.push(`Row ${rowNum}: Domain name too long (max 100 chars): ${mapping.domain}`);
200
- result.valid = false;
201
- }
202
- }
203
- // Summary
204
- if (result.valid) {
205
- console.log(chalk_1.default.green(`✅ Validation passed for ${mappings.length} mappings`));
206
- }
207
- else {
208
- console.log(chalk_1.default.red(`❌ Validation failed with ${result.errors.length} errors`));
209
- }
210
- if (result.warnings.length > 0) {
211
- console.log(chalk_1.default.yellow(`⚠️ ${result.warnings.length} warnings found`));
212
- }
213
- return result;
214
- }
215
- /**
216
- * Import documents using mappings
217
- */
218
- async importDocuments(mappings, options = {}) {
219
- const startTime = Date.now();
220
- console.log(chalk_1.default.blue(`📦 Starting import of ${mappings.length} documents`));
221
- // Filter mappings if needed
222
- let filteredMappings = mappings;
223
- if (options.domain) {
224
- filteredMappings = mappings.filter(m => m.domain === options.domain);
225
- console.log(chalk_1.default.gray(`🔍 Filtered to ${filteredMappings.length} mappings for domain: ${options.domain}`));
226
- }
227
- const results = [];
228
- if (options.dryRun) {
229
- console.log(chalk_1.default.yellow('🧪 DRY RUN MODE - No files will be uploaded'));
230
- // Simulate dry run results
231
- for (const mapping of filteredMappings) {
232
- results.push({
233
- success: true,
234
- filePath: mapping.filePath,
235
- document: undefined // No actual upload in dry run
236
- });
237
- }
238
- }
239
- else {
240
- // Actual import
241
- if (options.concurrency && options.concurrency > 1) {
242
- // Concurrent import
243
- const processingResult = await concurrent_processor_1.ConcurrentProcessor.processWithProgress(filteredMappings, async (mapping) => {
244
- return await this.client.importDocument(mapping);
245
- }, {
246
- concurrency: options.concurrency,
247
- operation: 'Import',
248
- itemName: 'documents'
249
- });
250
- results.push(...processingResult.results.filter(r => r !== undefined));
251
- // Add error results
252
- const errorResults = processingResult.errors.map(({ item, error }) => ({
253
- success: false,
254
- filePath: item.filePath,
255
- error: error.message
256
- }));
257
- results.push(...errorResults);
258
- }
259
- else {
260
- // Sequential import
261
- for (let i = 0; i < filteredMappings.length; i++) {
262
- const mapping = filteredMappings[i];
263
- const progress = `(${i + 1}/${filteredMappings.length})`;
264
- console.log(chalk_1.default.cyan(`${progress} Importing: ${path_1.default.basename(mapping.filePath)}`));
265
- try {
266
- const result = await this.client.importDocument(mapping);
267
- results.push(result);
268
- }
269
- catch (error) {
270
- results.push({
271
- success: false,
272
- filePath: mapping.filePath,
273
- error: error.message
274
- });
275
- }
276
- // Progress update every 10 documents
277
- if ((i + 1) % 10 === 0) {
278
- console.log(chalk_1.default.blue(`📊 Progress: ${i + 1}/${filteredMappings.length} processed`));
279
- }
280
- }
281
- }
282
- }
283
- const endTime = Date.now();
284
- const duration = endTime - startTime;
285
- const summary = {
286
- total: filteredMappings.length,
287
- successful: results.filter(r => r.success).length,
288
- failed: results.filter(r => !r.success).length,
289
- skipped: mappings.length - filteredMappings.length,
290
- results,
291
- duration
292
- };
293
- this.printImportSummary(summary, options.dryRun);
294
- return summary;
295
- }
296
- /**
297
- * Bulk import with CSV file
298
- */
299
- async bulkImportFromCsv(options) {
300
- console.log(chalk_1.default.blue(`🚀 Starting bulk import from: ${options.mappingFile}`));
301
- // Step 1: Parse CSV
302
- const mappings = await this.parseMappingFile(options.mappingFile, options.baseDir);
303
- // Step 2: Validate mappings
304
- if (!options.dryRun) {
305
- const validation = await this.validateMappings(mappings);
306
- if (!validation.valid) {
307
- throw new Error(`Validation failed with ${validation.errors.length} errors. Fix the issues and try again.`);
308
- }
309
- if (validation.warnings.length > 0 && options.interactive) {
310
- console.log(chalk_1.default.yellow('\n⚠️ Warnings found:'));
311
- validation.warnings.forEach(warning => console.log(chalk_1.default.yellow(` ${warning}`)));
312
- // In a real interactive scenario, you'd prompt the user here
313
- console.log(chalk_1.default.blue('Continuing with import...'));
314
- }
315
- }
316
- if (options.validateOnly) {
317
- console.log(chalk_1.default.green('✅ Validation complete. Use --no-validate-only to proceed with import.'));
318
- return {
319
- total: mappings.length,
320
- successful: 0,
321
- failed: 0,
322
- skipped: 0,
323
- results: [],
324
- duration: 0,
325
- mappingFile: options.mappingFile
326
- };
327
- }
328
- // Step 3: Test connection
329
- if (!options.dryRun) {
330
- console.log(chalk_1.default.blue('🔗 Testing API connection...'));
331
- const connected = await this.testConnection();
332
- if (!connected) {
333
- throw new Error('Failed to connect to HubDoc API. Check your configuration.');
334
- }
335
- }
336
- // Step 4: Import documents
337
- return await this.importDocuments(mappings, options);
338
- }
339
- /**
340
- * Print import summary
341
- */
342
- printImportSummary(summary, isDryRun = false) {
343
- const durationStr = (summary.duration / 1000).toFixed(1);
344
- console.log('\n' + chalk_1.default.bold(`📊 Import Summary ${isDryRun ? '(DRY RUN)' : ''}`));
345
- console.log(chalk_1.default.green(`✅ Successful: ${summary.successful}`));
346
- if (summary.failed > 0) {
347
- console.log(chalk_1.default.red(`❌ Failed: ${summary.failed}`));
348
- const failedResults = summary.results.filter(r => !r.success);
349
- if (failedResults.length > 0 && failedResults.length <= 10) {
350
- console.log('\n' + chalk_1.default.red('Failed imports:'));
351
- failedResults.forEach(result => {
352
- console.log(chalk_1.default.red(` • ${path_1.default.basename(result.filePath)}: ${result.error}`));
353
- });
354
- }
355
- else if (failedResults.length > 10) {
356
- console.log('\n' + chalk_1.default.red('Failed imports (showing first 10):'));
357
- failedResults.slice(0, 10).forEach(result => {
358
- console.log(chalk_1.default.red(` • ${path_1.default.basename(result.filePath)}: ${result.error}`));
359
- });
360
- console.log(chalk_1.default.red(` ... and ${failedResults.length - 10} more`));
361
- }
362
- }
363
- if (summary.skipped > 0) {
364
- console.log(chalk_1.default.gray(`⏭️ Skipped: ${summary.skipped}`));
365
- }
366
- console.log(chalk_1.default.blue(`\n📈 Total processed: ${summary.total} documents in ${durationStr}s`));
367
- if (summary.total > 0 && summary.duration > 0) {
368
- const rate = (summary.total / (summary.duration / 1000)).toFixed(1);
369
- console.log(chalk_1.default.gray(`⚡ Rate: ${rate} docs/second`));
370
- }
371
- }
372
- }
373
- exports.HubDocImportService = HubDocImportService;
374
- //# sourceMappingURL=hubdoc-import-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hubdoc-import-service.js","sourceRoot":"","sources":["../../src/services/hubdoc-import-service.ts"],"names":[],"mappings":"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"}
package/docs/README.md DELETED
@@ -1,65 +0,0 @@
1
- # Documentation des Connecteurs
2
-
3
- Cette section contient la documentation détaillée pour chaque connecteur supporté par hubdoc-tools.
4
-
5
- ## 📁 Connecteurs disponibles
6
-
7
- ### Cloud Storage
8
- - **[Box](./connectors/box.md)** - Box Cloud Storage
9
- - **[AWS S3](./connectors/aws-s3.md)** - Amazon S3 et services compatibles
10
- - **[Azure Blob](./connectors/azure-blob.md)** - Azure Blob Storage
11
-
12
- ### ECM/GED (Enterprise Content Management)
13
- - **[Alfresco](./connectors/alfresco.md)** - Alfresco Content Services
14
- - **[Nuxeo](./connectors/nuxeo.md)** - Nuxeo Platform
15
- - **[OpenText](./connectors/opentext.md)** - OpenText Content Server
16
-
17
- ### Microsoft 365 / SharePoint
18
- - **[SharePoint](./connectors/sharepoint.md)** - SharePoint Online via Microsoft Graph
19
-
20
- ## 🚀 Utilisation générale
21
-
22
- Tous les connecteurs supportent les opérations suivantes :
23
-
24
- ### Scan
25
- Parcourir et lister les documents disponibles dans la source.
26
-
27
- ### Import
28
- Télécharger les documents depuis la source vers le système local.
29
-
30
- ### Export
31
- Uploader des documents locaux vers la source externe.
32
-
33
- ## ⚙️ Configuration commune
34
-
35
- Chaque connecteur peut être configuré via :
36
-
37
- 1. **Mode interactif** : `hubdoc-tool --engine [nom] --interactive`
38
- 2. **Fichier de configuration** : `[nom]-config.json`
39
- 3. **Variables d'environnement** : selon le connecteur
40
-
41
- ## 🔍 Filtres supportés
42
-
43
- Tous les connecteurs supportent les filtres suivants :
44
-
45
- - **Taille** : `maxSize` - Taille maximale des fichiers
46
- - **Date** : `dateRange` - Plage de dates de modification
47
- - **Type MIME** : `mimeTypes` - Types de fichiers acceptés
48
- - **Limite** : `limit` - Nombre maximum de documents
49
-
50
- ## 📊 Métadonnées
51
-
52
- Chaque connecteur extrait et préserve les métadonnées spécifiques à sa plateforme :
53
-
54
- - Métadonnées standard (nom, taille, dates)
55
- - Métadonnées spécifiques à la plateforme
56
- - Informations d'audit (créateur, modificateur)
57
- - Tags et classifications selon disponibilité
58
-
59
- ## 🛠️ Développement
60
-
61
- Pour ajouter un nouveau connecteur, consulter l'architecture des plugins existants et implémenter l'interface `DocumentSourcePlugin`.
62
-
63
- ## 📞 Support
64
-
65
- Pour les problèmes spécifiques à un connecteur, consulter la section "Troubleshooting" de sa documentation respective.
@@ -1,211 +0,0 @@
1
- # Alfresco ECM Connector
2
-
3
- Plugin pour importer/exporter des documents depuis/vers Alfresco Content Management.
4
-
5
- ## Configuration
6
-
7
- ### Paramètres requis
8
- - `baseUrl` : URL de base Alfresco (ex: http://localhost:8080/alfresco)
9
- - `username` : Nom d'utilisateur Alfresco
10
- - `password` : Mot de passe Alfresco
11
-
12
- ### Paramètres optionnels
13
- - `siteId` : ID du site Alfresco à scanner (optionnel)
14
- - `folderId` : ID du dossier de départ (optionnel)
15
- - `includeFolders` : Inclure les sous-dossiers (défaut: true)
16
- - `limit` : Nombre maximum de documents à scanner
17
-
18
- ## Configuration Alfresco
19
-
20
- ### Prérequis
21
- - Alfresco Community ou Enterprise 5.2+
22
- - API REST Alfresco activée
23
- - Utilisateur avec permissions de lecture/écriture appropriées
24
-
25
- ### Vérification de l'API
26
- 1. Tester l'accès à l'API : `http://your-alfresco/alfresco/api/-default-/public/alfresco/versions/1/people/-me-`
27
- 2. Vérifier que l'authentification fonctionne
28
- 3. Tester l'accès aux contenus avec votre utilisateur
29
-
30
- ## Structure Alfresco
31
-
32
- ### Sites Alfresco
33
- Si vous utilisez Alfresco Share avec des sites :
34
- ```json
35
- {
36
- "baseUrl": "http://localhost:8080/alfresco",
37
- "username": "admin",
38
- "password": "admin",
39
- "siteId": "my-site"
40
- }
41
- ```
42
-
43
- ### Dossier spécifique
44
- Pour scanner à partir d'un dossier spécifique :
45
- ```json
46
- {
47
- "baseUrl": "http://localhost:8080/alfresco",
48
- "username": "admin",
49
- "password": "admin",
50
- "folderId": "workspace://SpacesStore/uuid-of-folder"
51
- }
52
- ```
53
-
54
- ### Repository racine (défaut)
55
- Sans siteId ni folderId, scan depuis `-root-` :
56
- ```json
57
- {
58
- "baseUrl": "http://localhost:8080/alfresco",
59
- "username": "admin",
60
- "password": "admin"
61
- }
62
- ```
63
-
64
- ## Utilisation
65
-
66
- ```bash
67
- # Mode interactif
68
- hubdoc-tool --engine alfresco
69
-
70
- # Avec limite de documents
71
- hubdoc-tool --engine alfresco --limit 50
72
- ```
73
-
74
- ## Fichier de configuration
75
-
76
- Créer `alfresco-config.json` :
77
-
78
- ```json
79
- {
80
- "baseUrl": "https://alfresco.example.com/alfresco",
81
- "username": "jdoe",
82
- "password": "password123",
83
- "siteId": "project-documents",
84
- "includeFolders": true,
85
- "limit": 200
86
- }
87
- ```
88
-
89
- ## Fonctionnalités supportées
90
-
91
- ### Scan (✅)
92
- - Parcours récursif des dossiers et sous-dossiers
93
- - Support des sites Alfresco Share
94
- - Métadonnées complètes Alfresco (aspects, propriétés)
95
- - Types de contenu personnalisés
96
- - Filtrage par taille, date, type MIME
97
-
98
- ### Import (✅)
99
- - Téléchargement du contenu binaire
100
- - Préservation de la structure de dossiers
101
- - Conservation des métadonnées Alfresco
102
- - Gestion des versions de documents
103
-
104
- ### Export (✅)
105
- - Upload multipart pour gros fichiers
106
- - Création automatique de l'arborescence
107
- - Assignment du type de contenu `cm:content`
108
- - Métadonnées de base (titre, description)
109
-
110
- ## Métadonnées Alfresco
111
-
112
- ### Propriétés standard extraites
113
- - **Dublin Core** : title, description, creator, created, modified
114
- - **Content Model** : name, type, parent, version
115
- - **Audit** : created_by, modified_by, creation date
116
- - **Custom Properties** : aspects et propriétés personnalisés
117
-
118
- ### Types de contenu supportés
119
- - `cm:content` : Documents standards
120
- - `cm:folder` : Dossiers
121
- - Types personnalisés définis dans votre modèle de contenu
122
-
123
- ## API Alfresco utilisée
124
-
125
- ### Version API
126
- - **API REST** : Alfresco REST API v1
127
- - **Base Path** : `/api/-default-/public/alfresco/versions/1`
128
- - **Documentation** : [Alfresco REST API](https://docs.alfresco.com/content-services/latest/develop/rest-api-guide/)
129
-
130
- ### Endpoints utilisés
131
- - `GET /nodes/{nodeId}/children` : Liste le contenu d'un nœud
132
- - `GET /nodes/{nodeId}/content` : Télécharge le contenu d'un fichier
133
- - `POST /nodes/{nodeId}/children` : Crée un nouveau document/dossier
134
- - `GET /sites/{siteId}/containers` : Accède aux conteneurs de site
135
-
136
- ## Structure des nœuds
137
-
138
- ### Identifiants Alfresco
139
- - **NodeRef** : `workspace://SpacesStore/uuid`
140
- - **Node ID** : uuid court utilisé dans l'API REST
141
- - **Path** : Chemin depuis Company Home
142
-
143
- ### Hiérarchie standard
144
- ```
145
- Company Home/
146
- ├── Data Dictionary/
147
- ├── Sites/
148
- │ └── my-site/
149
- │ └── documentLibrary/
150
- └── User Homes/
151
- ```
152
-
153
- ## Limitations
154
-
155
- ### Alfresco Community
156
- - Pas de clustering avancé
157
- - Limitations sur certains aspects enterprise
158
-
159
- ### Alfresco Enterprise
160
- - Fonctionnalités complètes
161
- - Support des transformations avancées
162
- - Workflows complexes
163
-
164
- ### API REST
165
- - Pagination max : 100 items par défaut
166
- - Timeout par défaut : 30 secondes
167
- - Pas de support des transactions
168
-
169
- ## Troubleshooting
170
-
171
- ### Erreur 401: Authentication failed
172
- - Vérifier username/password
173
- - Vérifier que l'utilisateur existe et est actif
174
- - Tester la connexion via navigateur
175
-
176
- ### Erreur 403: Access denied
177
- - Vérifier les permissions sur le site/dossier
178
- - S'assurer que l'utilisateur a les rôles appropriés
179
- - Vérifier les ACL sur les contenus
180
-
181
- ### Erreur 404: Node not found
182
- - Vérifier que le siteId ou folderId existe
183
- - Contrôler l'orthographe des identifiants
184
- - Tester l'accès via Share interface
185
-
186
- ### Erreur 500: Internal server error
187
- - Vérifier les logs Alfresco (alfresco.log, catalina.out)
188
- - Contrôler l'espace disque disponible
189
- - Vérifier la configuration de la base de données
190
-
191
- ## Bonnes pratiques
192
-
193
- ### Performance
194
- - Limiter la profondeur de scan pour les gros repositories
195
- - Utiliser des filtres appropriés (date, taille)
196
- - Planifier les imports/exports en dehors des heures de pointe
197
-
198
- ### Sécurité
199
- - Utiliser HTTPS pour les connexions
200
- - Créer un utilisateur dédié avec permissions minimales
201
- - Auditer les accès aux contenus sensibles
202
-
203
- ### Maintenance
204
- - Surveiller l'utilisation de l'espace disque
205
- - Configurer des règles de rétention appropriées
206
- - Sauvegarder régulièrement le repository et la DB
207
-
208
- ### Modèle de contenu
209
- - Définir des aspects personnalisés pour vos métadonnées
210
- - Utiliser des contraintes sur les propriétés
211
- - Implémenter des règles d'auto-classification