Recurso

Acceso de emergencia

4 operaciones · base https://api.bestdoctorsrd.com

POST/v1/break-the-glass

Create Break The Glass Grant

Parámetros

NombreEnTipoObl.
tenant_idquerystring o nuloNo

Cuerpo obligatorio BreakTheGlassCreateIn

CampoTipoObl.
resourceModulestring
resourceActionstring
motivostring
patientIdstring o nuloNo
durationMinutesintegerNo

Respuestas

CódigoDescripciónDevuelve
201Respuesta correctaBreakTheGlassGrantOut
422Error de validaciónHTTPValidationError
GET/v1/break-the-glass/active

List Active Break The Glass Grants

Grants vigentes de la institución. Quien tenga ``EMERGENCY_ACCESS`` + ``VIEW`` (auditoría/seguridad, admins) ve los de toda la institución; cualquier otro usuario ve solo los suyos, que es lo que necesita el banner "estás usando un acceso de emergencia".

Parámetros

NombreEnTipoObl.
userIdquerystring o nuloNo
tenant_idquerystring o nuloNo

Respuestas

CódigoDescripciónDevuelve
200Respuesta correctalista de BreakTheGlassGrantOut
422Error de validaciónHTTPValidationError
GET/v1/break-the-glass/history

List Break The Glass History

Historial de accesos de emergencia, paginado y filtrable (CR-236). A diferencia de ``/active``, aquí entran TODAS las filas —vigentes, caducadas y revocadas—: es el registro para revisar después, no el estado de ahora. El alcance es el mismo que el de ``/active`` y a propósito: quien supervisa (``EMERGENCY_ACCESS`` + ``VIEW``) ve la institución entera; cualquier otro ve **solo lo suyo**. Un clínico tiene derecho a revisar sus propios accesos sin que eso le abra los de sus compañeros, y tener dos reglas de alcance distintas en dos rutas del mismo módulo es como se cuelan los agujeros. Las fechas filtran por ``otorgadoAt``, que es cuándo ocurrió el acceso. Es lo que se busca al revisar («qué pasó el martes»), no cuándo caducó.

Parámetros

NombreEnTipoObl.
userIdquerystring o nuloNo
patientIdquerystring o nuloNo
dateFromquerystring (date-time) o nuloNo
dateToquerystring (date-time) o nuloNo
pagequeryintegerNo
pageSizequeryintegerNo
tenant_idquerystring o nuloNo

Respuestas

CódigoDescripciónDevuelve
200Respuesta correctaBreakTheGlassHistoryOut
422Error de validaciónHTTPValidationError
POST/v1/break-the-glass/{grant_id}/revoke

Revoke Break The Glass Grant

Cortar un acceso de emergencia antes de que caduque (CR-236). Hasta aquí el único control vivo era enterarse: el grant caducaba solo y nadie podía pararlo. Con esto la supervisión deja de ser solo lectura. **Quién**: ``EMERGENCY_ACCESS`` + ``AUDIT``. No es el mismo permiso que ver el panel (``VIEW``): mirar y cortar son decisiones distintas. Y nadie puede llegar a este permiso rompiendo el vidrio — ``EMERGENCY_ACCESS`` no está en ``EMERGENCY_ACCESS_ALLOWED_MODULES``, así que un grant jamás concede el módulo que gobierna los grants. **Efecto inmediato**: la revocación escribe ``revocadoAt``, y la vigencia la define ``active_emergency_grants`` con ``revocadoAt IS NULL``. El siguiente chequeo RBAC ya no ve la fila; no hay caché que invalidar ni ventana en la que el acceso siga en pie.

Parámetros

NombreEnTipoObl.
grant_idpathstring
tenant_idquerystring o nuloNo

Cuerpo obligatorio BreakTheGlassRevokeIn

CampoTipoObl.
motivostring

Respuestas

CódigoDescripciónDevuelve
200Respuesta correctaBreakTheGlassGrantOut
422Error de validaciónHTTPValidationError