Security audits

Customer security audits: a questionnaire with answers filled in from device data where Warden can, completed by hand where it can't, and a branded report.

MethodPathSummary
GET/api/auditsList security audits
POST/api/auditsStart a security audit
GET/api/audits/:idGet an audit with its questions and answers
PUT/api/audits/:idUpdate an audit
PUT/api/audits/:id/answers/:qidAnswer a question
POST/api/audits/:id/refreshFill in answers from device data again
POST/api/audits/:id/completeComplete an audit
POST/api/audits/:id/reopenReopen an audit
DELETE/api/audits/:idDelete an audit
GET/api/audits/:id/reportThe customer report: a printable HTML page (Print → Save as PDF)

#List security audits

GET/api/audits
Address
https://<your-org>.brambleit.cloud/warden/api/audits
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Response 200

FieldTypeDescription
auditsarray of any
Example response
JSON
{
  "audits": [],
  "…await audits.lookups(T(r": "…"
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#Start a security audit

POST/api/audits
Address
https://<your-org>.brambleit.cloud/warden/api/audits
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Response 201

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();

#Get an audit with its questions and answers

GET/api/audits/:id
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#Update an audit

PUT/api/audits/:id
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42', {
  method: 'PUT',
  credentials: 'include',
});
const data = await res.json();

#Answer a question

PUT/api/audits/:id/answers/:qid
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id/answers/:qid
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger
qidrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42/answers/1', {
  method: 'PUT',
  credentials: 'include',
});
const data = await res.json();

#Fill in answers from device data again

POST/api/audits/:id/refresh
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id/refresh
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42/refresh', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();

#Complete an audit

POST/api/audits/:id/complete
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id/complete
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42/complete', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();

#Reopen an audit

POST/api/audits/:id/reopen
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id/reopen
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42/reopen', {
  method: 'POST',
  credentials: 'include',
});
const data = await res.json();

#Delete an audit

DELETE/api/audits/:id
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42', {
  method: 'DELETE',
  credentials: 'include',
});
const data = await res.json();

#The customer report: a printable HTML page (Print → Save as PDF)

GET/api/audits/:id/report
Address
https://<your-org>.brambleit.cloud/warden/api/audits/:id/report
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Path parameters

NameTypeDescription
idrequiredinteger

Response

A body.

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/audits/42/report', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();