Configurations & assets

Configurations (servers, workstations, network kit…) and flexible assets of any type your admins define. Assets can be linked to RMM devices and kept in step with them, and related to each other.

MethodPathSummary
GET/api/assets/:idGet an asset
PUT/api/assets/:idUpdate an asset
POST/api/assets/:id/revealReveal a secret field
DELETE/api/assets/:idDelete an asset
POST/api/assets/:id/rmm-syncUpdate an asset from its RMM device
POST/api/assets/:id/rmm-linkLink an asset to an RMM device
GET/api/relationsWhat a record is related to
POST/api/relationsRelate two records
DELETE/api/relations/:idRemove a relation
GET/api/assets/:id/diagramsDiagrams an asset appears on (asset page)

#Get an asset

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
assetany
typestring
refsarray of any
rmmany
Example response
JSON
{
  "asset": null,
  "type": "string",
  "refs": [],
  "rmm": null
}

Example request

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

#Update an asset

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

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
dataany

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('/atlas/api/assets/42', {
  method: 'PUT',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"data":"…"}),
});
const data = await res.json();

#Reveal a secret field

POST/api/assets/:id/reveal

Returns one secret field's value and logs it.

Address
https://<your-org>.brambleit.cloud/atlas/api/assets/:id/reveal
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Atlas.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
keystringThe field.
copyanytrue when it's being copied rather than shown (recorded in the log).

Response 200

FieldTypeDescription
valueany
Example response
JSON
{
  "value": null
}

Errors

StatusMessage
404No such secret field

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/assets/42/reveal', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"key":"…","copy":"…"}),
});
const data = await res.json();

#Delete an asset

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

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('/atlas/api/assets/42', {
  method: 'DELETE',
  credentials: 'include',
});
const data = await res.json();

#Update an asset from its RMM device

POST/api/assets/:id/rmm-sync
Address
https://<your-org>.brambleit.cloud/atlas/api/assets/:id/rmm-sync
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Atlas.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
rmmany
Example response
JSON
{
  "rmm": null
}

Errors

StatusMessage
404The RMM device has gone

Example request

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

#Link an asset to an RMM device

POST/api/assets/:id/rmm-link
Address
https://<your-org>.brambleit.cloud/atlas/api/assets/:id/rmm-link
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Atlas.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
device_idintegerThe device.

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('/atlas/api/assets/42/rmm-link', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"device_id":7}),
});
const data = await res.json();

#What a record is related to

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

Query parameters

NameTypeDescription
kindstringThe record's kind (asset, password, document…).
idintegerIts id.

Response 200

FieldTypeDescription
relationsarray of any
Example response
JSON
{
  "relations": []
}

Example request

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

#Relate two records

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

Request body JSON

NameTypeDescription
a_kindstring
b_kindstring
notestring
a_idinteger
b_idinteger

Response 200

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

Errors

StatusMessage
404Record not found

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/relations', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"a_kind":"string","b_kind":"string","note":"string","a_id":7,"b_id":7}),
});
const data = await res.json();

#Remove a relation

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

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('/atlas/api/relations/42', {
  method: 'DELETE',
  credentials: 'include',
});
const data = await res.json();

#Diagrams an asset appears on (asset page)

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
diagramsarray of object
diagrams[].idinteger, or null
diagrams[].kindstring
diagrams[].namestring
Example response
JSON
{
  "diagrams": [
    {
      "id": 42,
      "kind": "string",
      "name": "Example name"
    }
  ]
}

Example request

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