@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.
- package/README.md +115 -34
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts +15 -0
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.js +37 -0
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.js.map +1 -0
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts +15 -0
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.js +54 -0
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.js.map +1 -0
- package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts +15 -0
- package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/plugins/test-plugin/index.js +34 -0
- package/dist/__tests__/fixtures/plugins/test-plugin/index.js.map +1 -0
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts +16 -0
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js +145 -0
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js.map +1 -0
- package/dist/api/api/authentication-api.d.ts +208 -0
- package/dist/api/api/authentication-api.d.ts.map +1 -0
- package/dist/api/api/authentication-api.js +385 -0
- package/dist/api/api/authentication-api.js.map +1 -0
- package/dist/api/api/bulk-uploads-api.d.ts +101 -0
- package/dist/api/api/bulk-uploads-api.d.ts.map +1 -0
- package/dist/api/api/bulk-uploads-api.js +195 -0
- package/dist/api/api/bulk-uploads-api.js.map +1 -0
- package/dist/api/api/contacts-api.d.ts +246 -0
- package/dist/api/api/contacts-api.d.ts.map +1 -0
- package/dist/api/api/contacts-api.js +465 -0
- package/dist/api/api/contacts-api.js.map +1 -0
- package/dist/api/api/documents-api.d.ts +267 -0
- package/dist/api/api/documents-api.d.ts.map +1 -0
- package/dist/api/api/documents-api.js +506 -0
- package/dist/api/api/documents-api.js.map +1 -0
- package/dist/api/api/folders-api.d.ts +255 -0
- package/dist/api/api/folders-api.d.ts.map +1 -0
- package/dist/api/api/folders-api.js +479 -0
- package/dist/api/api/folders-api.js.map +1 -0
- package/dist/api/api/groups-api.d.ts +246 -0
- package/dist/api/api/groups-api.d.ts.map +1 -0
- package/dist/api/api/groups-api.js +465 -0
- package/dist/api/api/groups-api.js.map +1 -0
- package/dist/api/api/permissions-api.d.ts +246 -0
- package/dist/api/api/permissions-api.d.ts.map +1 -0
- package/dist/api/api/permissions-api.js +465 -0
- package/dist/api/api/permissions-api.js.map +1 -0
- package/dist/api/api/workspaces-api.d.ts +213 -0
- package/dist/api/api/workspaces-api.d.ts.map +1 -0
- package/dist/api/api/workspaces-api.js +424 -0
- package/dist/api/api/workspaces-api.js.map +1 -0
- package/dist/api/api.d.ts +20 -0
- package/dist/api/api.d.ts.map +1 -0
- package/dist/api/api.js +38 -0
- package/dist/api/api.js.map +1 -0
- package/dist/api/base.d.ts +43 -0
- package/dist/api/base.d.ts.map +1 -0
- package/dist/api/base.js +49 -0
- package/dist/api/base.js.map +1 -0
- package/dist/api/common.d.ts +29 -0
- package/dist/api/common.d.ts.map +1 -0
- package/dist/api/common.js +109 -0
- package/dist/api/common.js.map +1 -0
- package/dist/api/configuration.d.ts +99 -0
- package/dist/api/configuration.d.ts.map +1 -0
- package/dist/api/configuration.js +49 -0
- package/dist/api/configuration.js.map +1 -0
- package/dist/api/index.d.ts +15 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +33 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/models/api-v1-documents-documents-post-request1.d.ts +34 -0
- package/dist/api/models/api-v1-documents-documents-post-request1.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-documents-post-request1.js +16 -0
- package/dist/api/models/api-v1-documents-documents-post-request1.js.map +1 -0
- package/dist/api/models/api-v1-documents-documents-post201-response.d.ts +17 -0
- package/dist/api/models/api-v1-documents-documents-post201-response.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-documents-post201-response.js +16 -0
- package/dist/api/models/api-v1-documents-documents-post201-response.js.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts +17 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js +16 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts +17 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js +16 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts +18 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js +16 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts +17 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts.map +1 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response.js +16 -0
- package/dist/api/models/api-v1-documents-folders-id-get200-response.js.map +1 -0
- package/dist/api/models/bulk-upload-mutation.d.ts +34 -0
- package/dist/api/models/bulk-upload-mutation.d.ts.map +1 -0
- package/dist/api/models/bulk-upload-mutation.js +16 -0
- package/dist/api/models/bulk-upload-mutation.js.map +1 -0
- package/dist/api/models/bulk-upload.d.ts +91 -0
- package/dist/api/models/bulk-upload.d.ts.map +1 -0
- package/dist/api/models/bulk-upload.js +23 -0
- package/dist/api/models/bulk-upload.js.map +1 -0
- package/dist/api/models/contact-mutation.d.ts +30 -0
- package/dist/api/models/contact-mutation.d.ts.map +1 -0
- package/dist/api/models/contact-mutation.js +16 -0
- package/dist/api/models/contact-mutation.js.map +1 -0
- package/dist/api/models/contact.d.ts +54 -0
- package/dist/api/models/contact.d.ts.map +1 -0
- package/dist/api/models/contact.js +16 -0
- package/dist/api/models/contact.js.map +1 -0
- package/dist/api/models/document-document-type.d.ts +19 -0
- package/dist/api/models/document-document-type.d.ts.map +1 -0
- package/dist/api/models/document-document-type.js +16 -0
- package/dist/api/models/document-document-type.js.map +1 -0
- package/dist/api/models/document-domain.d.ts +19 -0
- package/dist/api/models/document-domain.d.ts.map +1 -0
- package/dist/api/models/document-domain.js +16 -0
- package/dist/api/models/document-domain.js.map +1 -0
- package/dist/api/models/document-folder.d.ts +19 -0
- package/dist/api/models/document-folder.d.ts.map +1 -0
- package/dist/api/models/document-folder.js +16 -0
- package/dist/api/models/document-folder.js.map +1 -0
- package/dist/api/models/document-mutation.d.ts +50 -0
- package/dist/api/models/document-mutation.d.ts.map +1 -0
- package/dist/api/models/document-mutation.js +16 -0
- package/dist/api/models/document-mutation.js.map +1 -0
- package/dist/api/models/document.d.ts +73 -0
- package/dist/api/models/document.d.ts.map +1 -0
- package/dist/api/models/document.js +16 -0
- package/dist/api/models/document.js.map +1 -0
- package/dist/api/models/folder-mutation.d.ts +38 -0
- package/dist/api/models/folder-mutation.d.ts.map +1 -0
- package/dist/api/models/folder-mutation.js +16 -0
- package/dist/api/models/folder-mutation.js.map +1 -0
- package/dist/api/models/folder-parent.d.ts +19 -0
- package/dist/api/models/folder-parent.d.ts.map +1 -0
- package/dist/api/models/folder-parent.js +16 -0
- package/dist/api/models/folder-parent.js.map +1 -0
- package/dist/api/models/folder.d.ts +65 -0
- package/dist/api/models/folder.d.ts.map +1 -0
- package/dist/api/models/folder.js +16 -0
- package/dist/api/models/folder.js.map +1 -0
- package/dist/api/models/group-mutation.d.ts +26 -0
- package/dist/api/models/group-mutation.d.ts.map +1 -0
- package/dist/api/models/group-mutation.js +16 -0
- package/dist/api/models/group-mutation.js.map +1 -0
- package/dist/api/models/group.d.ts +38 -0
- package/dist/api/models/group.d.ts.map +1 -0
- package/dist/api/models/group.js +16 -0
- package/dist/api/models/group.js.map +1 -0
- package/dist/api/models/index.d.ts +35 -0
- package/dist/api/models/index.d.ts.map +1 -0
- package/dist/api/models/index.js +51 -0
- package/dist/api/models/index.js.map +1 -0
- package/dist/api/models/model-error.d.ts +26 -0
- package/dist/api/models/model-error.d.ts.map +1 -0
- package/dist/api/models/model-error.js +16 -0
- package/dist/api/models/model-error.js.map +1 -0
- package/dist/api/models/oauth-revoke-post200-response.d.ts +15 -0
- package/dist/api/models/oauth-revoke-post200-response.d.ts.map +1 -0
- package/dist/api/models/oauth-revoke-post200-response.js +16 -0
- package/dist/api/models/oauth-revoke-post200-response.js.map +1 -0
- package/dist/api/models/permission-actor.d.ts +20 -0
- package/dist/api/models/permission-actor.d.ts.map +1 -0
- package/dist/api/models/permission-actor.js +16 -0
- package/dist/api/models/permission-actor.js.map +1 -0
- package/dist/api/models/permission-mutation.d.ts +44 -0
- package/dist/api/models/permission-mutation.d.ts.map +1 -0
- package/dist/api/models/permission-mutation.js +22 -0
- package/dist/api/models/permission-mutation.js.map +1 -0
- package/dist/api/models/permission-permissible.d.ts +20 -0
- package/dist/api/models/permission-permissible.d.ts.map +1 -0
- package/dist/api/models/permission-permissible.js +16 -0
- package/dist/api/models/permission-permissible.js.map +1 -0
- package/dist/api/models/permission.d.ts +60 -0
- package/dist/api/models/permission.d.ts.map +1 -0
- package/dist/api/models/permission.js +22 -0
- package/dist/api/models/permission.js.map +1 -0
- package/dist/api/models/token-response.d.ts +41 -0
- package/dist/api/models/token-response.d.ts.map +1 -0
- package/dist/api/models/token-response.js +16 -0
- package/dist/api/models/token-response.js.map +1 -0
- package/dist/api/models/user.d.ts +18 -0
- package/dist/api/models/user.d.ts.map +1 -0
- package/dist/api/models/user.js +16 -0
- package/dist/api/models/user.js.map +1 -0
- package/dist/api/models/workspace-mutation-settings-validation.d.ts +26 -0
- package/dist/api/models/workspace-mutation-settings-validation.d.ts.map +1 -0
- package/dist/api/models/workspace-mutation-settings-validation.js +16 -0
- package/dist/api/models/workspace-mutation-settings-validation.js.map +1 -0
- package/dist/api/models/workspace-mutation-settings.d.ts +60 -0
- package/dist/api/models/workspace-mutation-settings.d.ts.map +1 -0
- package/dist/api/models/workspace-mutation-settings.js +16 -0
- package/dist/api/models/workspace-mutation-settings.js.map +1 -0
- package/dist/api/models/workspace-mutation.d.ts +44 -0
- package/dist/api/models/workspace-mutation.d.ts.map +1 -0
- package/dist/api/models/workspace-mutation.js +16 -0
- package/dist/api/models/workspace-mutation.js.map +1 -0
- package/dist/api/models/workspace-settings-validation.d.ts +26 -0
- package/dist/api/models/workspace-settings-validation.d.ts.map +1 -0
- package/dist/api/models/workspace-settings-validation.js +16 -0
- package/dist/api/models/workspace-settings-validation.js.map +1 -0
- package/dist/api/models/workspace-settings.d.ts +60 -0
- package/dist/api/models/workspace-settings.d.ts.map +1 -0
- package/dist/api/models/workspace-settings.js +16 -0
- package/dist/api/models/workspace-settings.js.map +1 -0
- package/dist/api/models/workspace.d.ts +62 -0
- package/dist/api/models/workspace.d.ts.map +1 -0
- package/dist/api/models/workspace.js +16 -0
- package/dist/api/models/workspace.js.map +1 -0
- package/dist/cli/handlers/command-handlers.d.ts +29 -0
- package/dist/cli/handlers/command-handlers.d.ts.map +1 -0
- package/dist/cli/handlers/command-handlers.js +261 -0
- package/dist/cli/handlers/command-handlers.js.map +1 -0
- package/dist/cli/handlers/engine-handlers.d.ts +15 -0
- package/dist/cli/handlers/engine-handlers.d.ts.map +1 -0
- package/dist/cli/handlers/engine-handlers.js +174 -0
- package/dist/cli/handlers/engine-handlers.js.map +1 -0
- package/dist/cli/interactive.d.ts +15 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +234 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli.js +31 -740
- package/dist/cli.js.map +1 -1
- package/dist/commands/export.d.ts +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +1 -1
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +5 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/index.d.ts +27 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -20
- package/dist/index.js.map +1 -1
- package/dist/services/hubdoc-api.d.ts +26 -6
- package/dist/services/hubdoc-api.d.ts.map +1 -1
- package/dist/services/hubdoc-api.js +194 -43
- package/dist/services/hubdoc-api.js.map +1 -1
- package/dist/services/hubdoc-export.d.ts +1 -1
- package/dist/services/hubdoc-export.d.ts.map +1 -1
- package/dist/services/hubdoc-export.js +1 -1
- package/dist/services/hubdoc-export.js.map +1 -1
- package/dist/services/oauth-token-service.d.ts +27 -14
- package/dist/services/oauth-token-service.d.ts.map +1 -1
- package/dist/services/oauth-token-service.js +147 -80
- package/dist/services/oauth-token-service.js.map +1 -1
- package/dist/services/plugin-import.d.ts +2 -2
- package/dist/services/plugin-import.d.ts.map +1 -1
- package/dist/services/plugin-import.js +2 -2
- package/dist/services/plugin-import.js.map +1 -1
- package/dist/services/plugin-manager.d.ts +6 -1
- package/dist/services/plugin-manager.d.ts.map +1 -1
- package/dist/services/plugin-manager.js +28 -2
- package/dist/services/plugin-manager.js.map +1 -1
- package/dist/types/index.d.ts +11 -37
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/config.d.ts +30 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +187 -40
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/csv.d.ts.map +1 -1
- package/dist/utils/csv.js +14 -3
- package/dist/utils/csv.js.map +1 -1
- package/package.json +23 -6
- package/.env.example +0 -23
- package/BAUTECH_HubDoc_Import.pptx +0 -0
- package/CHANGELOG.md +0 -134
- package/DEMO-DOCUMENTATION.html +0 -356
- package/DEMO-DOCUMENTATION.md +0 -411
- package/EXPORT-DOCUMENTATION.md +0 -333
- package/HUBDOC-API-V2.md +0 -248
- package/INSTALL.md +0 -175
- package/PACKAGING.md +0 -206
- package/PLUGINS.md +0 -328
- package/PRESENTATION-CLIENT.md +0 -100
- package/README-hubdoc-tool.md +0 -369
- package/README-npm.md +0 -238
- package/TESTING.md +0 -129
- package/config-examples/README.md +0 -36
- package/config-examples/alfresco-config.example.json +0 -8
- package/config-examples/azure-blob-config.example.json +0 -7
- package/config-examples/box-config.example.json +0 -5
- package/config-examples/nuxeo-config.example.json +0 -8
- package/config-examples/opentext-config.example.json +0 -7
- package/config-examples/s3-config.example.json +0 -8
- package/config-examples/sharepoint-config.example.json +0 -7
- package/demo/README.md +0 -199
- package/demo/demo-script.md +0 -284
- package/demo/generate-sample-csv.js +0 -351
- package/demo/mapping_bautech_15k.csv +0 -1
- package/demo/simulate-import.js +0 -273
- package/dist/commands/export-v2.d.ts +0 -45
- package/dist/commands/export-v2.d.ts.map +0 -1
- package/dist/commands/export-v2.js +0 -369
- package/dist/commands/export-v2.js.map +0 -1
- package/dist/commands/import-v2.d.ts +0 -32
- package/dist/commands/import-v2.d.ts.map +0 -1
- package/dist/commands/import-v2.js +0 -331
- package/dist/commands/import-v2.js.map +0 -1
- package/dist/services/hubdoc-api-v2.d.ts +0 -150
- package/dist/services/hubdoc-api-v2.d.ts.map +0 -1
- package/dist/services/hubdoc-api-v2.js +0 -418
- package/dist/services/hubdoc-api-v2.js.map +0 -1
- package/dist/services/hubdoc-client.d.ts +0 -246
- package/dist/services/hubdoc-client.d.ts.map +0 -1
- package/dist/services/hubdoc-client.js +0 -714
- package/dist/services/hubdoc-client.js.map +0 -1
- package/dist/services/hubdoc-export-service.d.ts +0 -90
- package/dist/services/hubdoc-export-service.d.ts.map +0 -1
- package/dist/services/hubdoc-export-service.js +0 -443
- package/dist/services/hubdoc-export-service.js.map +0 -1
- package/dist/services/hubdoc-export-v2.d.ts +0 -77
- package/dist/services/hubdoc-export-v2.d.ts.map +0 -1
- package/dist/services/hubdoc-export-v2.js +0 -329
- package/dist/services/hubdoc-export-v2.js.map +0 -1
- package/dist/services/hubdoc-import-service.d.ts +0 -64
- package/dist/services/hubdoc-import-service.d.ts.map +0 -1
- package/dist/services/hubdoc-import-service.js +0 -374
- package/dist/services/hubdoc-import-service.js.map +0 -1
- package/docs/README.md +0 -65
- package/docs/connectors/alfresco.md +0 -211
- package/docs/connectors/aws-s3.md +0 -187
- package/docs/connectors/azure-blob.md +0 -195
- package/docs/connectors/box.md +0 -115
- package/docs/connectors/nuxeo.md +0 -214
- package/docs/connectors/opentext.md +0 -234
- package/docs/connectors/sharepoint.md +0 -207
- package/documentation.html +0 -273
- package/jest.config.js +0 -15
- package/plugins/core/README.md +0 -122
- package/plugins/core/TESTING.md +0 -155
- package/plugins/core/plugin.json +0 -26
- package/plugins/dropbox/plugin.json +0 -12
- package/plugins/filesystem/plugin.json +0 -12
- package/plugins/googledrive/plugin.json +0 -12
- package/plugins/onedrive/TESTING.md +0 -197
- package/plugins/onedrive/plugin.json +0 -12
- package/scripts/build-windows-installer.ps1 +0 -132
- package/scripts/build-windows-installer.sh +0 -106
- package/scripts/prepare-publish.js +0 -62
- 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
|