From 1aedfba2e1ec424a54f4510262a8e2f8f66dc1da Mon Sep 17 00:00:00 2001 From: Pierre-Yves Date: Mon, 29 Jan 2024 11:06:34 -0800 Subject: [PATCH] Documentation (#41) Add documentation and improve API --- README.md | 180 +++++++++++++----- doc/PurgeFile.png | Bin 0 -> 36131 bytes doc/ReadFile.png | Bin 0 -> 36830 bytes doc/StoreFile.png | Bin 0 -> 37867 bytes pom.xml | 2 +- .../io/camunda/filestorage/StorageFolder.java | 9 + .../io/camunda/filestorage/StorageURL.java | 16 ++ 7 files changed, 154 insertions(+), 53 deletions(-) create mode 100644 doc/PurgeFile.png create mode 100644 doc/ReadFile.png create mode 100644 doc/StoreFile.png diff --git a/README.md b/README.md index 15ac7e8..fc15dd2 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,60 @@ [![](https://img.shields.io/badge/Community%20Extension-An%20open%20source%20community%20maintained%20project-FF4700)](https://github.com/camunda-community-hub/community) ![Compatible with: Camunda 8](https://img.shields.io/badge/Compatible%20with-Camunda%208-0072Ce) -Library to manipulate File process variable, and store the content in different storage (Folder, CMIS...) +Library to manipulate File process variables and store the content in different storage (Folder, CMIS...) -This library is used by connectors. +This library is used by connectors or by an application. +# Principle +Zeebe can't manipulate the files, only String as a process variable. -# Store file to the storage +The idea is to give to the File Storage the file and get back a **File Reference**. +The **File Reference** can be saved as a process variable. -Get an instance of the factory +## Store a file -```` +Multiple storage are available: to specify which file storage is used, a **Storage Definition** is provided. +![Store file](doc/StoreFile.png) + +Multiple storages are available (see the section below). + +* CMIS: Any Content Management Interoperability Services. A lot of tools exist. +* JSON: the file is saved directly in the file reference. Zeebe allows only 4 Mb for the payload; this method works only for small files. +* Folder: a folder on the host. Specify a shared folder in the cluster +* Temporary Folder: the temporary folder of the host is used (assuming all applications/connectors/workers run on the same host) + + +## Read a file +With the *File Reference**, it is possible to retrieve the file + +![Read file](doc/ReadFile.png) + +Note: The storage "URL" can be used to read a file from a URL. It is a Read Only storage. + + + +## Purge a file +The file can be purged from the storage when the process is finished. The **File Reference** is provided. + +There is no "expiration mechanism" (except the temporary folder, which is purged on each reboot), so the application must purge files. + +![Purge file](doc/PurgeFile.png) + +# API + +The API contains three main access. + +## Store files + +Get an instance of the factory. + +````java FileRepoFactory fileRepoFactory = FileRepoFactory.getInstance(); ```` -Create a FileVariable. Upload the file in the FileVariable object +Create a **FileVariable**. Upload the file in the **FileVariable** object. -```` +````java FileVariable fileVariable = new FileVariable(); byte[] contentInByte = fileVariable.setValue( contentInByte ); @@ -25,56 +63,57 @@ fileVariable.setName( "MyDocumentName.pdf"); fileVariable.setMimeType( FileVariable.getMimeTypeFromName(fileVariable.getName())); ````` -Set the Storage Definition. The Storage definition describe where the core document is stored. +Set the **Storage Definition**. The **Storage Definition** describes where the core document is stored. -```` +````java StorageDefinition storageDefinition = StorageDefinition.getFromString(storageDefinitionSt); fileVariable.setStorageDefinition(storageDefinition); ```` -See below the different Storage definition available +See below the different Storage definitions available, and the structure of the storageDefinitionSt. -Save the File Variable. The function return a FileVariableReference +Save the **File Variable**. The function returns a **FileVariableReference**. -```` +````java FileVariableReference fileVariableReference = fileRepoFactory.saveFileVariable(fileVariableValue); ```` -The fileVariableReference is only a reference, and can be saved in the process variable +The fileVariableReference is only a reference and can be saved in the process variable. -```` - String processVariableSt = fileVariableReference.toJson() +````java + String processVariableSt = fileVariableReference.toJson(); // save the processVariableSt as a process variable ```` -# Read file from the storage +## Read a file -To read a file from the storage, the first operation consist of accessing the FileVariableReference +Access the file from the **FileVariableReference**. -```` +````java String processVariableSt = FileVariableReference fileVariableReference = FileVariableReference.fromJson( processVariableSt ); ```` -Then get the FileVariable from the repository +Then, get the **FileVariable** from the repository. -```` +````java FileRepoFactory fileRepoFactory = FileRepoFactory.getInstance(); - FileVariable fileVariable = fileRepoFactory.loadFileVariable(fileVariableReference) + FileVariable fileVariable = fileRepoFactory.loadFileVariable(fileVariableReference); ```` -Content, fileName, MimeType are available via method. +Content, fileName, and MimeType are available via the method. -The storage definition is stored in the FileVariable, so to update it, change the content and store it again. +The **Storage Definition** information is saved in the **FileVariable** to update it, change the content, and store it again. -# Purge a fileVariable -From the FileVariableReference, it is possible to purge the document in the storage. +## Purge a file -```` +From the **FileVariableReference**, purging the document in the storage is possible. + +````java String processVariableSt = FileVariableReference fileVariableReference = FileVariableReference.fromJson( processVariableSt ); @@ -83,71 +122,108 @@ From the FileVariableReference, it is possible to purge the document in the stor ```` # Storage definition -Different storage definition are available. The storage store the core of the document. +Different *Storage Definition** are available. The storage stores the core of the document. ## JSON -The file is saved in JSON, and the FileVariableReference contains the complete document. This is very efficient, but Zeebe limited the size of a process to 4 Mb. This solution is not possible to saved documents. +The file is saved in JSON, and the **FileVariableReference** contains the complete document. +It is very efficient, but Zeebe limited the size of the process to 4 Mb. +This solution does not make it possible to save documents (Word, OpenOffice, PDF) which are in general bigger. Storage Definition Key: "JSON" -```` +````java import StorageJSON; -StorageCMIS.getStorageDefinitionString() +String storageDefinition = StorageJSON.getStorageDefinitionString(); ```` ## Temporary folder -The file is saved in the Temporary folder of the host. -If multiple applications (different connectors) needs to access the file, this is not an acceptable document, except if all application are hosted by the same machine (or the same Pod) +The file is saved in the Temporary folder of the host. +If multiple applications (different connectors) need to access the file, this is not an acceptable document, except if all applications are hosted by the same machine (or the same Pod) Storage Definition Key: "TEMPFOLDER" -```` +````java import StorageTempFolder; -StorageCMIS.getStorageDefinitionString() +String storageDefinition = StorageTempFolder.getStorageDefinitionString(); ```` ## Folder -The file is saved in the folder given in the connection string. -If multiple applications needs to access the file, the folder must be visible and share on the same place (/mnt/filestoreage" for example). +The file is saved in the folder given in the connection string. +If multiple applications need to access the file, the folder must be visible and shared in the same place (/mnt/file storage" for example). -Storage Definition Key: "FOLDER:/mnt/filestorage" +Storage Definition Key: "FOLDER:/this/is/the/path/to/the/storage" -```` +````java import StorageFolder; -StorageCMIS.getStorageDefinitionString(String folder) +String storageDefinition = StorageFolder.getStorageDefinitionString(String folder); ```` ## CMIS -The file is saved in a CMIS tool. The connection to the tool (Url, Repository name, username, password) must be provide. -The folder where the file must be store must be provide too. +The file is saved in a CMIS tool. The connection to the tool (URL, Repository name, username, password) must be provided. +The folder where the file must be stored must be provided, too. Storage Definition Key: "CMIS:{"url":"", "repositoryName":"", "userName": "", "password": "", "storageDefinitionFolder":""}" -The static methode is available in the StorageCMIS class +The static method is available in the StorageCMIS class. -```` +````java import StorageCMIS; -StorageCMIS.getStorageDefinitionString(String url, String repositoryName, String userName, String password, String storageDefinitionFolder) +String storageDefinition = StorageCMIS.getStorageDefinitionString(String url, String repositoryName, String userName, String password, String storageDefinitionFolder) ```` ## URL -The file may be access via an URL. This storage is use to READ only. +The file may be accessed via a URL. This storage is used to READ only. + +For example, this source file reads a document from a URL. +````java +import StorageURL; + +String storageDefinition = StorageURL.getStorageDefinitionString("https://github.com/camunda-community-hub/camunda-8-connector-officetopdf/raw/main/src/test/resources/OfficeToPdfExample.docx"); +```` + +## Get from a String + +This method return a Storage definition from a String + +````java +import StorageDefinition; + +StorageDefinition storageDefinition = StorageDefinition.getFromString( storageDefinitionSt ); + +```` -For example, this soure file read a document from an URL. -`````json -{ - "storageDefinition": "URL", - "content": "https://github.com/camunda-community-hub/camunda-8-connector-officetopdf/raw/main/src/test/resources/OfficeToPdfExample.docx" -} +The format of the string is the following: +: -````` \ No newline at end of file +Types are **JSON**, **TEMPFOLDER**, **FOLDER**, **CMIS**, **URL** + +Complement depends of the type. + +**JSON**, **TEMPFOLDER**, **URL** does not have any complement. + +**CMIS** contains as reference the access information, saved in JSON, for example +```` +"CMIS:{\"url\":\"http://localhost:8099/lightweightcmis/browser\",\"userName\":\"cmisaccess\",\"password\":\"demo\",\"storageDefinitionFolder\":\"/storagecmis\"}" +```` + + +*FOLDER* needs to describe the folder +```` +"FOLDER:/this/is/the/path/to/the/storage" +```` + +From a *StorageDefinition*, the string can be get: + +`````java +String storageDefinitionSt = storageDefinition.encodeToString() +````` diff --git a/doc/PurgeFile.png b/doc/PurgeFile.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e8078c9d1e831947d504a6354cbaf66ce44ca0 GIT binary patch literal 36131 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/ReadFile.png b/doc/ReadFile.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7498c308a30a6dc34c348edbac7d27c02e8a2e GIT binary patch literal 36830 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

4_tY;K8X{3|)x?K=_ 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 Hl+XkKPJAxp literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 1e5b964..a3d1caa 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.camunda.filestorage filestorage - 1.2.0 + 1.2.1 17 diff --git a/src/main/java/io/camunda/filestorage/StorageFolder.java b/src/main/java/io/camunda/filestorage/StorageFolder.java index e164da2..3cf36ae 100644 --- a/src/main/java/io/camunda/filestorage/StorageFolder.java +++ b/src/main/java/io/camunda/filestorage/StorageFolder.java @@ -39,6 +39,15 @@ public static String getStorageDefinitionString(String folder ) { return StorageDefinition.StorageDefinitionType.FOLDER.toString()+StorageDefinition.STORAGE_DEFINITION_DELIMITATEUR+folder; } + /** + * + * @param folder folder to save the file + * @return the connection string + */ + public static String getStorageDefinitionString(Path folder ) { + return StorageDefinition.StorageDefinitionType.FOLDER.toString()+StorageDefinition.STORAGE_DEFINITION_DELIMITATEUR+folder.toString(); + } + /** * Save the file Variable structure in the temporary folder * diff --git a/src/main/java/io/camunda/filestorage/StorageURL.java b/src/main/java/io/camunda/filestorage/StorageURL.java index 4b53029..1034774 100644 --- a/src/main/java/io/camunda/filestorage/StorageURL.java +++ b/src/main/java/io/camunda/filestorage/StorageURL.java @@ -17,6 +17,22 @@ protected StorageURL(StorageDefinition storageDefinition, FileRepoFactory fileRe super(storageDefinition, fileRepoFactory); } + /** + * + * @param url to access + * @return the connection string + */ + public static String getStorageDefinitionString(URL url ) { + return StorageDefinition.StorageDefinitionType.URL.toString()+StorageDefinition.STORAGE_DEFINITION_DELIMITATEUR+url.toString(); + } + /** + * + * @param url to access + * @return the connection string + */ + public static String getStorageDefinitionString(String url ) { + return StorageDefinition.StorageDefinitionType.URL.toString()+StorageDefinition.STORAGE_DEFINITION_DELIMITATEUR+url; + } @Override public String getName() { return "URL";