File manager service
The file manager service allows to remotely deploy/undeploy files to/from runtime directory. The service is always installed by default, however can be removed/undeployed for the security purposes without affecting anything but file deployment.
Setup
Use the template EVA_DIR/share/svc-tpl/svc-tpl-filemgr.yml:
# File manager service
command: svc/eva-filemgr
bus:
path: var/bus.ipc
config:
protected:
- registry
- svc_data
mime_types: share/mime.yml
# the file manager service usually works under root, however may be restricted
# for higher security
user: eva
Create the service using eva-shell:
eva svc create eva.filemgr.main /opt/eva4/share/svc-tpl/svc-tpl-filemgr.yml
or using the bus CLI client:
cd /opt/eva4
cat DEPLOY.yml | ./bin/yml2mp | \
./sbin/bus ./var/bus.ipc rpc call eva.core svc.deploy -
(see eva.core::svc.deploy for more info)
EAPI methods
See EAPI commons for the common information about the bus, types, errors and RPC calls.
file.get
Description |
Gets a file from runtime directory |
Parameters |
required |
Returns |
File info or info + content |
Name |
Type |
Description |
Required |
path |
String |
Relative file path |
yes |
mode |
String |
i/x/t/b (info, extended info, text, binary) |
no |
caller |
String |
m/h (machine/human) |
no |
Return payload example:
{
"content_type": "application/x-yaml",
"modified": 1648693508.311287,
"path": "test.yml",
"permissions": 33188,
"size": 9
}
file.put
Description |
Puts a file into runtime directory |
Parameters |
required |
Returns |
nothing |
Name |
Type |
Description |
Required |
path |
String |
Relative file path |
yes |
content |
Vec<u8>/String |
File content |
yes |
permissions |
u32/String/bool |
‘0o755’ for string, true/false for executable flag |
no |
sha256 |
Vec<u8><String> |
Check sha256 sum of the content before saving |
no |
extract |
String |
Extract as: no|tar|txz|tgz|tbz2|zip |
no |
download |
bool |
Download content from HTTP URI, sent in the content field |
no |
file.unlink
Description |
Deletes file from runtime directory |
Parameters |
required |
Returns |
nothing |
Name |
Type |
Description |
Required |
path |
String |
Relative file path |
yes |
list
Description |
List files/directories in runtime directory |
Parameters |
required |
Returns |
nothing |
Name |
Type |
Description |
Required |
path |
String |
Relative path |
no |
masks |
String/Vec<String> |
file masks |
no |
kind |
String |
file, dir or any |
no |
recursive |
bool |
recursive listing |
no |
sh
Description |
Executes a shell command |
Parameters |
required |
Returns |
Command execution info |
Name |
Type |
Description |
Required |
c |
String |
Command to execute |
yes |
timeout |
f64 |
Max command timeout |
no |
stdin |
String |
STDIN data |
no |
check_exit_code |
bool |
Check exit code, return error if non-zero |
no |
Return payload example:
{
"err": "STDERR OUTPUT",
"exitcode": 0,
"out": "STDOUT OUTPUT"
}