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