Hot-folder mode adds to Async Mode the ability to process files directly from/to a set of configured input/output folders.
This mode requires, in addition to the configuration file created for the asynchronous mode, that 3 folders be added to the [PATH_TO_WORK_FOLDER] directory, in particular:
Input folder: It is the input interface with the client service and stores the documents to be signed.
Backup folder: Keeps a copy of each file processed. In case of success, only the original file is moved, otherwise, an text file with details of the error is attached.
Output folder: It is the output interface with the client service and stores the signed documents or a text file, named as the original file, with details about the error that occurred.
To enable this mode it is necessary to include the following parameter in addition to those of the ASYNC mode and then set it to TRUE.
Parameter | Description |
---|---|
HT_ENABLED | Turn on/off the hot folder mode (ex: TRUE|FALSE). |
Architecture
The Sign’Stash Proxy components are in gray background, the Sign’Stash SaaS is in green background, and the blue background pertains to the client service components.
Configuration File
This mode requires to update the configuration file using the following parameters related with the additional folders created.
[INPUT_FOLDER_NAME]: States the relative path of the folder from which the files to be signed will be obtained (e.g. /inputFolder)
[BACKUP_FOLDER_NAME]: States the relative path of the folder to which the processed files will be secured (e.g. /backupFolder)
[OUTPUT_FOLDER_NAME]: States the relative path of the folder to which the signed files (or errors) will be saved (e.g. /outputFolder)
{ "[CLIENT_SERVICE_ID]": { "secret": "[CLIENT_SERVICE_SECRET]", "inputFolder": "[INPUT_FOLDER_NAME]", "backupFolder": "[BACKUP_FOLDER_NAME]", "outputFolder": "[OUTPUT_FOLDER_NAME]" } ... }
Optionally, it is also possible to expand this configuration with information to enable visible signatures attributes for PDF documents, using:
[LOCATION_TYPE]: States which type of location strategy will be used to set the visible signature. Allowed values: SIGN_FIELD, COORDINATE, PLACEHOLDER.
[LOCATION_VALUE]: States the location value for the appropriate locationType defined (e.g. page=1,x=100,y=200).
[VISIBLE_TEXT_TEMPLATE_TYPE]: States the type of signature template to be used. Allowed values: ONE_OFF, SERVICE_CUSTOMIZATION.
[ONE_OFF_TEMPLATE_TEXT]: If templateType=ONE_OFF, then set the text value format to display (e.g. Digitally Signed by $certificate.getCommonName()).
{ "[CLIENT_SERVICE_ID]": { "secret": "[CLIENT_SERVICE_SECRET]", "inputFolder": "[INPUT_FOLDER_NAME]", "backupFolder": "[BACKUP_FOLDER_NAME]", "outputFolder": "[OUTPUT_FOLDER_NAME]", "padesVisibleSignature": { "locationType": "[LOCATION_TYPE]", "locationValue": "[LOCATION_VALUE]", "templateType": "[VISIBLE_TEXT_TEMPLATE_TYPE]", "oneOffTemplate": "[ONE_OFF_TEMPLATE_TEXT]" } } ... }
It is possible to find additional information about these parameters through the Swagger documentation exposed by the service’s REST API.
Docker Command
Start the service by defining the docker command according to the following format:
docker run -d --mount source=vol[UID],target=/tmp --mount type=bind,source=[PATH_TO_WORK_FOLDER],target=/home -p [PORT]:8080 --memory=[MEMORY] [IMAGE_ID] --server.host.port=[HOST]:[PORT] --einvoice-integration-client.service.domain=[SAAS_DOMAIN] --einvoice-integration-client.rest.provider.proxy.hostname=[PROXY_HOSTNAME] --einvoice-integration-client.rest.provider.proxy.port=[PROXY_PORT] --hot.folder.enabled=[HT_ENABLED]
Please refer to Docker run documentation for additional information
Execution example using staging environment:
docker run -d --mount source=vol1,target=/tmp --mount type=bind,source=C:/temp,target=/home -p 8081:8080 --memory=4g teammust/einvoice:integration-client-ws-f8ebf1180e7f430a147b84536e523fe85bdb362d-80 --server.host.port=127.0.0.1:8081 --einvoice-integration-client.service.domain=https://staging.must.digital/ --hot.folder.enabled=TRUE
Sequence diagram
Typical interactions between systems in this mode are presented in the following sequence diagram:
Response handling
General response handling overview: