Split API specs to PROTOCOL.md

pull/125/head
Valerian Saliou 11 months ago
parent 830a09ff61
commit 5db5fb8404
No known key found for this signature in database
GPG Key ID: C648A8138046772A

@ -0,0 +1,159 @@
Vigil Protocol
==============
# Vigil Reporter HTTP API
## 1⃣ Report a replica
**Endpoint URL:**
`HTTP POST https://status.example.com/reporter/<probe_id>/<node_id>/`
Where:
* `node_id`: The parent node of the reporting replica
* `probe_id`: The parent probe of the node
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `reporter_token`.
* Set the `Content-Type` to `application/json; charset=utf-8`, and ensure you submit the request data as UTF-8.
**Request data:**
Adjust the request data to your replica context and send it as `HTTP POST`:
```json
{
"replica": "<replica_id>",
"interval": 30,
"load": {
"cpu": 0.30,
"ram": 0.80
}
}
```
Where:
* `replica`: The replica unique identifier (eg. the server LAN IP)
* `interval`: The push interval (in seconds)
* `load.cpu`: The general CPU load, from `0.00` to `1.00` (can be more than `1.00` if the CPU is overloaded)
* `load.ram`: The general RAM load, from `0.00` to `1.00`
## 2⃣ Flush a replica
**Endpoint URL:**
`HTTP DELETE https://status.example.com/reporter/<probe_id>/<node_id>/<replica_id>/`
Where:
* `node_id`: The parent node of the reporting replica
* `probe_id`: The parent probe of the node
* `replica_id`: The replica unique identifier (eg. the server LAN IP)
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `reporter_token`.
---
# Vigil Manager HTTP API
## 1⃣ List published announcements
**Endpoint URL:**
`HTTP GET https://status.example.com/manager/announcements/`
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
## 2⃣ Insert a new announcement
**Endpoint URL:**
`HTTP POST https://status.example.com/manager/announcement/`
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
* Set the `Content-Type` to `application/json; charset=utf-8`, and ensure you submit the request data as UTF-8.
**Request data:**
Adjust the request data to your announcement and send it as `HTTP POST`:
```json
{
"title": "<title>",
"text": "<text>"
}
```
Where:
* `title`: The title for the announcement
* `text`: The description text for the announcement (can be multi-line)
## 3⃣ Retract a published announcement
**Endpoint URL:**
`HTTP DELETE https://status.example.com/manager/announcement/<announcement_id>/`
Where:
* `announcement_id`: The announcement identifier to be removed
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
## 4⃣ List prober alerts
**Endpoint URL:**
`HTTP GET https://status.example.com/manager/prober/alerts/`
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
## 5⃣ Resolve ignore rules for prober alerts
**Endpoint URL:**
`HTTP GET https://status.example.com/manager/prober/alerts/ignored/`
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
## 6⃣ Update ignore rules for prober alerts
**Endpoint URL:**
`HTTP PUT https://status.example.com/manager/prober/alerts/ignored/`
**Request headers:**
* Add an `Authorization` header with a `Basic` authentication where the password is your configured `manager_token`.
* Set the `Content-Type` to `application/json; charset=utf-8`, and ensure you submit the request data as UTF-8.
**Request data:**
Adjust the request data to your announcement and send it as `HTTP PUT`:
```json
{
"reminders_seconds": 600
}
```
Where:
* `reminders_seconds`: The number of seconds during which downtime reminders should not be sent anymore (skipped)
Loading…
Cancel
Save