Password vault

Stored passwords, with TOTP codes. Values are encrypted; reading one is a separate, logged reveal.

MethodPathSummary
GET/api/passwordsPasswords that belong to no organisation: the MSP's own (distributors, vendor portals...)
GET/api/passwords/:idGet a password's details (not its value)
POST/api/passwordsAdd a password with no organisation
PUT/api/passwords/:idUpdate a password
DELETE/api/passwords/:idDelete a password
POST/api/passwords/:id/revealReveal a password
POST/api/passwords/:id/totpCurrent TOTP code for a password

#Passwords that belong to no organisation: the MSP's own (distributors, vendor portals...)

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

Query parameters

NameTypeDescription
assetinteger

Response 200

FieldTypeDescription
passwordsarray of any
Example response
JSON
{
  "passwords": []
}

Example request

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

#Get a password's details (not its value)

GET/api/passwords/:id
Address
https://<your-org>.brambleit.cloud/atlas/api/passwords/: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
passwordobject
assetany
Example response
JSON
{
  "password": {},
  "asset": null
}

Example request

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

#Add a password with no organisation

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

Example request

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

#Update a password

PUT/api/passwords/:id
Address
https://<your-org>.brambleit.cloud/atlas/api/passwords/: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
restrictedbooleanOnly Atlas admins may reveal it.
passwordanyA new value (leave out to keep the current one).

Response 200

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

Errors

StatusMessage
403Only Atlas administrators can change who sees a password

Example request

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

#Delete a password

DELETE/api/passwords/:id
Address
https://<your-org>.brambleit.cloud/atlas/api/passwords/: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/passwords/42', {
  method: 'DELETE',
  credentials: 'include',
});
const data = await res.json();

#Reveal a password

POST/api/passwords/:id/reveal

Returns the value and logs it.

Address
https://<your-org>.brambleit.cloud/atlas/api/passwords/: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
whatstringpassword or notes.
copyanytrue when it's being copied rather than shown.

Response 200

FieldTypeDescription
valuestring
Example response
JSON
{
  "value": "string"
}

Example request

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

#Current TOTP code for a password

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

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

Example request

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