Contexto de cuenta y miembros
Propósito: seleccionar el alcance de la cuenta e inspeccionar la membresía de la cuenta antes de las operaciones de credenciales o proveedores.
Flujo de interfaz de usuario
- La interfaz de usuario llama a
GET /api/accountspara enumerar las cuentas accesibles. - El usuario selecciona la cuenta activa.
- La interfaz de usuario conserva el contexto de la cuenta a través de
POST /api/account-views/switch. - La interfaz de usuario carga
GET /api/accounts/:account_id. - La interfaz de usuario carga
GET /api/accounts/:account_id/members. - El propietario puede crear una cuenta infantil con
POST /api/accounts. - El propietario puede actualizar los valores de visualización de la cuenta con
PATCH /api/accounts/:account_id. - El propietario puede agregar o eliminar miembros con
/api/accounts/:account_id/members*. - La interfaz de usuario almacena
account_iden el estado de la ruta y antepone todas las llamadas posteriores con alcance de cuenta.
Flujo de la biblioteca del cliente
const accounts = await api.accounts.list();
const active = selectAccount(accounts.data);
const account = await api.accounts.get(active.id);
const members = await api.members.list(active.id);
Flujo HTTP/curl
API_BASE_URL="https://api.inbox-manager.com"
curl -sS "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/account-views/switch" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"account_id\":\"${ACCOUNT_ID}\"}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/search" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"query":"owner","limit":20,"offset":0}'
curl -sS -X POST "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations Team"}'
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"user_id":"uid_target","role":"member"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"role":"owner"}'
curl -sS -X DELETE "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
Notas
- La discrepancia en la ruta de la cuenta devuelve
403. - Los endpoints de membresía tienen un alcance de cuenta y están controlados por roles.
- Los endpoints de escritura de cuenta/miembro requieren la función
owner. - La creación de miembros admite
memberyviewer; La promoción de propiedad utiliza parche. - La degradación del propietario y la eliminación de la membresía propia están bloqueadas.
- La degradación o eliminación del último propietario devuelve
409.