To automate the process of training the data source file for any change in data, you can set up a periodic system task on the system where you have installed the EDMTrain tool. The system task must periodically check for any changes made in the data source file and run the EDMTrain tool to update the fingerprint file in the output location. For example, you can set up a task on every Sunday to check for any updates in the data source file and run the EDMTrain tool against the data source file to update the .props file and .dis file. You can then run the REST API calls using PowerShell or bash command for ePO - On-prem to copy and verify the fingerprint file in the evidence share folder.
Important
We recommend running the API call only when there is a change in the fingerprint file. Uploading a huge fingerprint file takes considerable amount of time and uses system resources. Re-create and train the data source file when it is required to reorder or remove a column. Changing the column name isn't supported either. You must re-create the fingerprint file for any change and re-create the content classification criteria.
Make sure that you enable the REST API option in ePO - On-prem before you run the API calls. To enable REST API in ePO - On-prem, select Menu → Data Protection → DLP Settings → Advanced → Enable REST API.
fileUploadAPI call — Use thefileUploadPOST API call to request ePO - On-prem to copy the fingerprint file from the specified shared storage path to the configured evidence share location. For more information, see Upload the fingerprint file using the REST API call.fileStatusAPI call — Use thefileStatusGET API call to verify the status of the uploaded fingerprint file. For more information, see Verify the status of the uploaded fingerprint file using the REST API call.
Using cURL as the data transfer tool
To send requests to the REST interface, you can use cURL as the data transfer tool.
A request sent with curl usually has three main parts: the curl command, one or multiple options, and a URL. For example, in the following file upload request, the curl command appears with the -F option for requesting the data using the "multipart/form-data", specified in the "field=value pair" format. The -u option is used to pass the authorization parameters. The -X option is used to pass the request method.
Example:
curl -k -v -F "path=<Shared_path_filename.props>" -F "username=<username>" -F "password=<password>" -X POST <URL> -u "admin:<password>"
A URL in a request specifies a protocol, which can be HTTP or HTTPS in communication with the REST interface, the IP address or host name and the port number of the ePO - On-prem server that a request is sent to, and the internal path on the ePO - On-prem server to the REST interface.
Using these and other options of curl together with the appropriate URLs, you can send requests to the REST interface to perform tasks as needed.
The curl data transfer tool is available under Linux and other UNIX operating systems and described in full detail in the curl man page.
Ways to pass parameters and values in the curl command
Request Methods
The request method is specified in curl by the -X option. When working with the REST interface, you can use the GET and POST methods, for example: curl -X POST <URL>
If no request method is specified, GET is the default method.
URL
A URL in a request specifies a protocol, which can be HTTP or HTTPS in communication with the REST interface, the IP address or host name and the port number that a request is sent to. This is followed by the name of the activity (REST API call) that must be performed and further parameters if there are any.
As the REST interface is located within the rest folder of the ePO - On-prem server, the folder path appears in the URL.
For example, the POST request URL looks like:
curl -X POST https://<epo_server_name>:port/rest/dlp/classification/EDM/fileUpload
Similarly, a URL in a GET request specifies the HTTP or HTTPS in communication with the REST interface followed by the fileStatus REST API call that must be performed to verify the status of the uploaded file:
curl -X GET https://<epo_server_name:port>/rest/dlp/classification/EDM/fileStatus?filename=<file_name>
In this request, the URL also has query parameter, filename for verifying the status of the uploaded fingerprint file. The file name must be unique as the file path is not passed, and specified without the file extension. Query parameters are introduced by a ? (question mark), as in the command line.
Authentication parameters
Before you can use the REST interface to perform any activities, you need to authenticate.
To authenticate, submit the user name and password in the request that you send to the REST interface in the "admin:<password>" format. You can use the -u option to send the authentication parameters:
curl -X POST <URL> -u "admin:<password>"
You can also use the -u admin format, which causes curl to prompt for the password.
Sending input parameters in the request body
For sending input parameters or uploading files with curl, use the -F (--form) option.
This causes curl to POST (request) data using the Content-Type of multipart/form-data, and -F is specified using the "field=value pair" format.
Using -F adds Content-Type of encryption_type="multipart/form-data" to the request. For example, the following command when used with the -v (verbose) option:
curl -v -F "path=<Shared_storage_path_with_filename.props>" -X POST <URL>
Generates a request similar to:
> POST /rest/dlp/classification/EDM/fileUpload HTTP/1.1 > Host: 10.xx.xxx.xx:8443 > Authorization: Basic xxxxxxxxxxxxxx > User-Agent: curl/7.75.0 > Accept: */* > Content-Length: 425 > Content-Type: multipart/form-data; boundary=------------------------345dc497d8c5f406