1. Create in root
folder .env
file and set next required parameter:
KEY_PASSWORD=... # [required] password from private key file
Also you can set another environment variables:
DEBUG=app # turn on service logs into console; default: app
NODE_ENV=... # dev|prod; default: prod
PORT=... # port number where you want to start server; default: 3000
WRITE_INTO_FILE=... # true|false; if you need to store all data into files into {root}/resources; default: false
KEY_FILE_NAME=... # name of private key file, which you will put into {root}/resources; default: key.dat
CERTIFICATE_FILE_NAME=... # name of certificate file, which you will put into {root}/resources; default: certificate.cer
SIGNED_DATA_FILE_NAME=... # name of generated EDS file, which you will get to {root}/resources; default: signedData.p7s
PARSED_DATA_FILE_NAME=... # file name of parsed response content from SFS; this file will write into {root}/resources; default: decrypted.txt
2. Copy key.dat
and certificate.cer
files to {root}/resources
3. Execute:
npm i
npm run start
Also, there is another command exists for starting watcher of server code changes:
npm run debug
1. Do the 1st and 2nd steps from Deployment
section (see above).
2. Run from root
folder:
sudo ./docker.sh
3. Now you can call server from docker container with:
curl http://0.0.0.0:3100
All content, that is sent via POST method in request body, should be sent in UTF-8
encoding!
route: /
method: GET
status: 200 OK
body:
{
"success": true
}
This route should work always!
route: /sign
method: POST
body: ...
Inside body
you can send any string data, which you want to sign.
status: 200 OK
body:
{
"success": true,
"data": "..."
}
data
parameter comes as encoded base64
signed data.
route: /decrypt
method: POST
body: ...
Inside body
you should send full response body from SFS, which is encoded base64
string.
status: 200 OK
body:
{
"success": true,
"data": "..."
}
data
parameter comes as encoded base64
string. It's decrypted response from SFS.
- If something happened on business logic, but it's not critical, and need to investigate server logs:
status: 200 OK
body:
{
"success": false
}
- If sent data is not valid:
status: 400 Bad Request
body:
{
"success": false,
"message": "Invalid parameters"
}
- If route doesn't exist:
status: 404 Not Found
body:
{
"success": false,
"message": "Route not found"
}
- If requests limit from host is exceeded:
status: 429 Too Many Requests
body:
{
"success": false,
"message": "Request limit exceeded"
}
- If some server error happened:
status: 500 Internal Server Error
body:
{
"success": false,
"message": "Server error"
}