Active Directory & Group Policy

Domain controllers enrolled in RMM: Group Policy objects and required settings, changes made through Warden (with undo), and running gpupdate on devices. Needs warden.directory.manage.

MethodPathSummary
GET/api/gpoDomains and Group Policy objects
POST/api/gpo/changesChanges in Active Directory / Group Policy (warden.directory.manage)
POST/api/gpo/changes/:id/undoUndo a directory change
POST/api/gpo/refreshRead Group Policy from the domain again
POST/api/gpo/requirementsRequire a GPO on devices
DELETE/api/gpo/requirements/:idRemove a GPO requirement
POST/api/gpo/gpupdateRun gpupdate on devices

#Domains and Group Policy objects

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

Response 200

Example request

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

#Changes in Active Directory / Group Policy (warden.directory.manage)

POST/api/gpo/changes
Address
https://<your-org>.brambleit.cloud/warden/api/gpo/changes
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.
Permission (any of): warden.directory.manage.

Request body JSON

NameTypeDescription
domainstring
actionany
paramsarray of any

Response 201

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/gpo/changes', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"domain":"string","action":"…","params":[]}),
});
const data = await res.json();

#Undo a directory change

POST/api/gpo/changes/:id/undo
Address
https://<your-org>.brambleit.cloud/warden/api/gpo/changes/:id/undo
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.
Permission (any of): warden.directory.manage.

Path parameters

NameTypeDescription
idrequirednumber

Response 201

Example request

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

#Read Group Policy from the domain again

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

Response 200

FieldTypeDescription
queuedany
Example response
JSON
{
  "queued": null
}

Example request

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

#Require a GPO on devices

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

Request body JSON

NameTypeDescription
domainstring
gpo_guidany
targetsarray of any
notestring

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/gpo/requirements', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"domain":"string","gpo_guid":"…","targets":[],"note":"string"}),
});
const data = await res.json();

#Remove a GPO requirement

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

Path parameters

NameTypeDescription
idrequirednumber

Response 200

FieldTypeDescription
messagestring
Example response
JSON
{
  "message": "Saved"
}

Example request

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

#Run gpupdate on devices

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

Request body JSON

NameTypeDescription
device_idsarray of any

Response 200

FieldTypeDescription
queuedany
Example response
JSON
{
  "queued": null
}

Errors

StatusMessage
400Choose devices

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/gpo/gpupdate', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"device_ids":[]}),
});
const data = await res.json();