SisIYA backend API
3.6K
A backend for SisIYA. It is going to replace the classical C++ written TCP socket based daemon approach with an HTTP API backend.
Use docker directory for docker and podman directory for podman. The following commands are the same for both docker and podman.
Build container image
make build
Run the application
make up
Show running containers
make ps
In order to test locally add necesery lines in /etc/hosts file by executing the following commands:
sudo echo "127.0.0.1 sisiya-backend.localdomain" >> /etc/hosts
sudo echo "127.0.0.1 sisiya-backend-swagger.localdomain" >> /etc/hosts
Use the following command to get an API key for a client:
curl --request 'POST' 'http://sisiya-backend.localdomain/clients' --header 'accept: application/json' --header 'Content-Type: application/json' --data-ascii '{ "name": "client1.example.com" }'
Or open your browser and point to http://sisiya-backend-swagger.localdomain
Use "clients" endpoint to create a API key for your client node. Specify your client server name
{
"name": "client1.example.com"
}
When you get the "api_key" use it to authorization. For this use the "Authorize" button in swagger.
Create a JSON message file
{
"systems": [
{
"name": "client1.example.com",
"messages": [
{
"service": "file_system",
"expire": "15",
"data": [
{
"description": "/ is 50% full",
"status": "ok"
},
{
"description": "/var is 85% (>= 85) full!",
"status": "warning"
},
{
"description": "/tmp is 93% (>=90= full!",
"status": "error"
}
]
},
{
"service": "system",
"expire": "15",
"data": [
{
"description": "The system is restarted 5 days ago. Linux client1 5.15.50-1-MANJARO",
"status": "ok"
}
]
}
]
}
]
}
cat example1.json | base64 -w 0
To send the message use the above generated encoded message with the following command:
curl --request 'POST' 'http://sisiya-backend.localdomain/messages' --header 'accept: application/json' --header 'X-API-KEY: 4f9345328197dc1c0dab9b50ef3c7ca8c88381776da4ff487adc24f9640cac1c' --header 'Content-Type: application/json' --data-ascii '{ "base64_data": "ewogICAgInN5c3RlbXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJjbGllbnQxLmV4YW1wbGUuY29tIiwKICAgICAgICAibWVzc2FnZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJzZXJ2aWNlIjogImZpbGVfc3lzdGVtIiwKICAgICAgICAgICAgImV4cGlyZSI6ICIxNSIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICIvIGlzIDUwJSBmdWxsIiwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAib2siCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiL3ZhciBpcyA4NSUgKD49IDg1KSBmdWxsISIsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIndhcm5pbmciCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiL3RtcCBpcyA5MyUgKD49OTA9IGZ1bGwhIiwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiZXJyb3IiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAic2VydmljZSI6ICJzeXN0ZW0iLAogICAgICAgICAgICAiZXhwaXJlIjogIjE1IiwKICAgICAgICAgICAgImRhdGEiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzeXN0ZW0gaXMgcmVzdGFydGVkIDUgZGF5cyBhZ28uIExpbnV4IGNsaWVudDEgNS4xNS41MC0xLU1BTkpBUk8iLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJvayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIF0KICB9Cg==" }'
To decode the base64 encoded message:
echo "ewogICAgInN5c3RlbXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJjbGllbnQxLmV4YW1wbGUuY29tIiwKICAgICAgICAibWVzc2FnZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJzZXJ2aWNlIjogImZpbGVfc3lzdGVtIiwKICAgICAgICAgICAgImV4cGlyZSI6ICIxNSIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICIvIGlzIDUwJSBmdWxsIiwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAib2siCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiL3ZhciBpcyA4NSUgKD49IDg1KSBmdWxsISIsCiAgICAgICAgICAgICAgICAic3RhdHVzIjogIndhcm5pbmciCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiL3RtcCBpcyA5MyUgKD49OTA9IGZ1bGwhIiwKICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiZXJyb3IiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAic2VydmljZSI6ICJzeXN0ZW0iLAogICAgICAgICAgICAiZXhwaXJlIjogIjE1IiwKICAgICAgICAgICAgImRhdGEiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzeXN0ZW0gaXMgcmVzdGFydGVkIDUgZGF5cyBhZ28uIExpbnV4IGNsaWVudDEgNS4xNS41MC0xLU1BTkpBUk8iLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJvayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIF0KICB9Cg=="|base64 --decode
Please use gitlab's issue tracker system https://gitlab.com/a6005/sisiya-backend/-/issues if you have any issue or requests.
The repository is in GitLab: https://gitlab.com/a6005/sisiya-backend/
Fatih GENÇ
Erdal MUTLU
This software is licensed under GPLv3.
Content type
Image
Digest
sha256:a08520b17…
Size
94.1 MB
Last updated
3 months ago
docker pull erdalmutlu/sisiya-backend