Miembros e invitaciones

Ver en Markdown

Lista, añade y quita a las personas de tu organización, cambia sus roles y gestiona las invitaciones.

En esta página

Los miembros son las personas con acceso a la organización, cada una con un rol. Los admins añaden miembros directamente o los invitan por correo; una invitación vale 7 días.

OperaciónRuta
Listar miembrosGET /v1/orgs/{org}/members
Añadir un miembroPOST /v1/orgs/{org}/members
Cambiar el rol de un miembroPATCH /v1/orgs/{org}/members/{user}
Quitar un miembroDELETE /v1/orgs/{org}/members/{user}
Listar invitacionesGET /v1/orgs/{org}/invitations
Crear una invitaciónPOST /v1/orgs/{org}/invitations
Retirar una invitaciónDELETE /v1/orgs/{org}/invitations/{id}

Listar miembros

GET /v1/orgs/{org}/members

Lista los miembros de la organización con su rol y, si están limitados a un cliente, su client_id.

Rol necesario: readonly o superior. De toda la organización.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Respuesta

CampoTipoDescripción
items[].idstring (uuid)Id.
items[].emailstringCorreo electrónico.
items[].namestringNombre.
items[].created_atstring (date-time)Fecha de creación.
items[].rolestringRol. Uno de owner, admin, tech, readonly.
items[].joined_atstring (date-time)Cuándo entró el miembro.
items[].client_idstring (uuid) o nullCliente al que se limita el miembro (solo roles tech y readonly); null = toda la organización.

Errores

EstadoDescripción
403El rol o los límites del token no lo permiten (forbidden).

Ejemplo

curl "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/members" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
200
{
  "items": [
    {
      "id": "5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
      "email": "[email protected]",
      "name": "Dev team",
      "created_at": "2026-04-10T12:00:00Z",
      "role": "tech",
      "joined_at": "2026-04-10T12:00:00Z",
      "client_id": null
    }
  ]
}

Añadir un miembro

POST /v1/orgs/{org}/members

Añade una persona a la organización directamente por su correo, sin invitación. client_id limita el miembro a las zonas de un cliente (solo roles tech y readonly).

Rol necesario: admin o superior. Solo un owner puede dar el rol owner.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Cuerpo de la petición

Tipo de contenido application/json.

CampoTipoObligatorioDescripción
emailstring (email)SíCorreo electrónico.
namestringNoNombre.
rolestringSíRol. Uno de owner, admin, tech, readonly.
client_idstring (uuid)NoLimita el miembro a las zonas de un cliente (solo roles tech y readonly).

Respuesta

  • 201: Añadido. Devuelve Member.
CampoTipoDescripción
idstring (uuid)Id.
emailstringCorreo electrónico.
namestringNombre.
created_atstring (date-time)Fecha de creación.
rolestringRol. Uno de owner, admin, tech, readonly.
joined_atstring (date-time)Cuándo entró el miembro.
client_idstring (uuid) o nullCliente al que se limita el miembro (solo roles tech y readonly); null = toda la organización.

Errores

EstadoDescripción
403El rol o los límites del token no lo permiten (forbidden).
409already_member: la persona ya es miembro.

Ejemplo

curl -X POST "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/members" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "email": "[email protected]",
    "role": "tech"
  }'
201
{
  "id": "5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
  "email": "[email protected]",
  "name": "Dev team",
  "created_at": "2026-04-10T12:00:00Z",
  "role": "tech",
  "joined_at": "2026-04-10T12:00:00Z",
  "client_id": null
}

Cambiar el rol de un miembro

PATCH /v1/orgs/{org}/members/{user}

Cambia el rol de un miembro. La organización siempre conserva al menos un owner. Los tokens del miembro siguen el nuevo rol al instante, porque un token nunca actúa por encima de su miembro.

Rol necesario: admin o superior. Cambiar a un owner o dar el rol owner exige el rol owner.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).
userrutastring (uuid)SíId de usuario del miembro.

Cuerpo de la petición

Tipo de contenido application/json.

CampoTipoObligatorioDescripción
rolestringSíRol. Uno de owner, admin, tech, readonly.

Respuesta

CampoTipoDescripción
idstring (uuid)Id.
emailstringCorreo electrónico.
namestringNombre.
created_atstring (date-time)Fecha de creación.
rolestringRol. Uno de owner, admin, tech, readonly.
joined_atstring (date-time)Cuándo entró el miembro.
client_idstring (uuid) o nullCliente al que se limita el miembro (solo roles tech y readonly); null = toda la organización.

Errores

EstadoDescripción
403El rol o los límites del token no lo permiten (forbidden).
409conflict: el cambio dejaría la organización sin owner.

Ejemplo

curl -X PATCH "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/members/5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "role": "admin"
  }'
200
{
  "id": "5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
  "email": "[email protected]",
  "name": "Dev team",
  "created_at": "2026-04-10T12:00:00Z",
  "role": "tech",
  "joined_at": "2026-04-10T12:00:00Z",
  "client_id": null
}

Quitar un miembro

DELETE /v1/orgs/{org}/members/{user}

Quita un miembro de la organización. Sus tokens de API dejan de valer al momento. No se puede quitar al último owner.

Rol necesario: admin o superior. Quitar a un owner exige el rol owner.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).
userrutastring (uuid)SíId de usuario del miembro.

Respuesta

  • 204: Quitado. Sin cuerpo.

Errores

EstadoDescripción
403El rol o los límites del token no lo permiten (forbidden).
409conflict: el miembro es el último owner.

Ejemplo

curl -X DELETE "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/members/5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"

Listar invitaciones

GET /v1/orgs/{org}/invitations

Lista las invitaciones abiertas de la organización.

Rol necesario: admin o superior. De toda la organización.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Respuesta

CampoTipoDescripción
items[].idstring (uuid)Id.
items[].org_idstring (uuid)Id de la organización.
items[].emailstringCorreo electrónico.
items[].rolestringRol. Uno de owner, admin, tech, readonly.
items[].invited_bystringQuién envió la invitación.
items[].created_atstring (date-time)Fecha de creación.
items[].expires_atstring (date-time)Fecha de caducidad.
items[].client_idstring (uuid) o nullCliente al que se limitará el miembro invitado; null = toda la organización.

Ejemplo

curl "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/invitations" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
200
{
  "items": [
    {
      "id": "a5614527-0ce6-43be-ad1d-d012b7394867",
      "org_id": "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e",
      "email": "[email protected]",
      "role": "owner",
      "invited_by": "user:5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
      "created_at": "2026-10-27T09:30:00Z",
      "expires_at": "2026-10-27T09:30:00Z",
      "client_id": "65904271-c7f4-4ee6-a8a6-84f55f76a92a"
    }
  ]
}

Crear una invitación

POST /v1/orgs/{org}/invitations

Invita a una persona por correo con un rol. La invitación vale 7 días. La respuesta incluye su secret, que solo se muestra una vez; la persona invitada la acepta desde el enlace del correo.

Rol necesario: admin o superior. Solo un owner puede invitar con el rol owner.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Cuerpo de la petición

Tipo de contenido application/json.

CampoTipoObligatorioDescripción
emailstring (email)SíCorreo electrónico.
rolestringSíRol. Uno de owner, admin, tech, readonly.
client_idstring (uuid)NoLimita el miembro invitado a las zonas de un cliente (solo roles tech y readonly).

Respuesta

  • 201: Creada. Devuelve un objeto con los campos de abajo.
CampoTipoDescripción
idstring (uuid)Id.
org_idstring (uuid)Id de la organización.
emailstringCorreo electrónico.
rolestringRol. Uno de owner, admin, tech, readonly.
invited_bystringQuién envió la invitación.
created_atstring (date-time)Fecha de creación.
expires_atstring (date-time)Fecha de caducidad.
client_idstring (uuid) o nullCliente al que se limitará el miembro invitado; null = toda la organización.
secretstring

Errores

EstadoDescripción
409already_member o una invitación abierta para el mismo correo.

Ejemplo

curl -X POST "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/invitations" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "email": "[email protected]",
    "role": "readonly"
  }'
201
{
  "id": "a5614527-0ce6-43be-ad1d-d012b7394867",
  "org_id": "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e",
  "email": "[email protected]",
  "role": "owner",
  "invited_by": "user:5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
  "created_at": "2026-10-27T09:30:00Z",
  "expires_at": "2026-10-27T09:30:00Z",
  "client_id": "65904271-c7f4-4ee6-a8a6-84f55f76a92a",
  "secret": "owf_8Jx2…"
}

Retirar una invitación

DELETE /v1/orgs/{org}/invitations/{id}

Retira una invitación abierta; su enlace deja de valer.

Rol necesario: admin o superior. De toda la organización.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).
idrutastring (uuid)SíId del recurso.

Respuesta

  • 204: Retirada. Sin cuerpo.

Errores

EstadoDescripción
404No existe o el token no lo ve (not_found).

Ejemplo

curl -X DELETE "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/invitations/11111111-2222-4333-8444-555555555555" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar