Urgent alerts
Critical advisories and newly exploited CVEs that affect your devices, public notices from national security centres, and alerts you add yourself from a link.
| Method | Path | Summary |
|---|---|---|
| GET | /api/alerts | Critical advisories, newly exploited CVEs and people's own alerts, with where each device in scope stands: affected / possibly / patched / safe |
| GET | /api/notices | Public notices (lib/notices.js): everything NCSC / CERT-EU published about vulnerabilities, with the alert each one raised or joined |
| GET | /api/alerts/:id | Get an alert with affected devices |
| POST | /api/alerts/lookup | Reads a pasted link (NCSC / vendor notice) for the "Track an alert" form: its title, summary, CVE IDs and the distro advisories that cover them |
| POST | /api/alerts | Add an alert by hand |
| PUT | /api/alerts/:id | Update an alert |
| DELETE | /api/alerts/:id | Delete an alert |
| POST | /api/alerts/:id/dismiss | Archive or restore an alert |
| POST | /api/alerts/:id/recheck | Check devices against an alert again |
| POST | /api/alerts/:id/containers/accept | A container image on one device: accept this alert's findings in it until a newer image is out ({ device_id, image_id, undo }) |
#Critical advisories, newly exploited CVEs and people's own alerts, with where each device in scope stands: affected / possibly / patched / safe
GET
/api/alerts- Address
https://<your-org>.brambleit.cloud/warden/api/alerts- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Response 200
| Field | Type | Description |
|---|---|---|
alerts | array of any | |
feeds | array of any |
Example response
JSON
{
"alerts": [],
"feeds": []
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Public notices (lib/notices.js): everything NCSC / CERT-EU published about vulnerabilities, with the alert each one raised or joined
GET
/api/notices- Address
https://<your-org>.brambleit.cloud/warden/api/notices- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Response 200
| Field | Type | Description |
|---|---|---|
notices | array of any |
Example response
JSON
{
"notices": []
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/notices', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Get an alert with affected devices
GET
/api/alerts/:id- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Query parameters
| Name | Type | Description |
|---|---|---|
cves | string |
Response 200
Errors
| Status | Message |
|---|---|
| 404 | Alert not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Reads a pasted link (NCSC / vendor notice) for the "Track an alert" form: its title, summary, CVE IDs and the distro advisories that cover them
POST
/api/alerts/lookup- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/lookup- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Request body JSON
| Name | Type | Description |
|---|---|---|
url | string |
Response 200
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/lookup', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"url":"https://example.com/…"}),
});
const data = await res.json();#Add an alert by hand
POST
/api/alerts- Address
https://<your-org>.brambleit.cloud/warden/api/alerts- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Request body JSON
| Name | Type | Description |
|---|---|---|
force | any | |
title | string |
Response 201
Errors
| Status | Message |
|---|---|
| 409 | Warden is already tracking this as "…" |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"force":"…","title":"Example title"}),
});
const data = await res.json();#Update an alert
PUT
/api/alerts/:id- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | Only alerts added here can be edited |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5', {
method: 'PUT',
credentials: 'include',
});
const data = await res.json();#Delete an alert
DELETE
/api/alerts/:id- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | Only alerts added here can be deleted |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5', {
method: 'DELETE',
credentials: 'include',
});
const data = await res.json();#Archive or restore an alert
POST
/api/alerts/:id/dismiss- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id/dismiss- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
restore | any |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | Alert not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5/dismiss', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"restore":"…"}),
});
const data = await res.json();#Check devices against an alert again
POST
/api/alerts/:id/recheck- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id/recheck- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 202
Errors
| Status | Message |
|---|---|
| 404 | Alert not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5/recheck', {
method: 'POST',
credentials: 'include',
});
const data = await res.json();#A container image on one device: accept this alert's findings in it until a newer image is out ({ device_id, image_id, undo })
POST
/api/alerts/:id/containers/accept- Address
https://<your-org>.brambleit.cloud/warden/api/alerts/:id/containers/accept- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Request body JSON
| Name | Type | Description |
|---|---|---|
device_id | integer | |
image_id | integer | |
undo | any |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean | |
findings | integer |
Example response
JSON
{
"ok": true,
"findings": 1
}Errors
| Status | Message |
|---|---|
| 404 | Alert not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/alerts/12.5/containers/accept', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"device_id":7,"image_id":7,"undo":"…"}),
});
const data = await res.json();Was this page helpful?
Thanks for your feedback.