> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Equipos

> Gestión de equipos, miembros y roles en la plataforma

# Equipos

El módulo de Teams permite organizar usuarios en equipos, gestionar membresías y definir permisos a nivel de equipo.

## Interfaz

Ruta: `/app/teams/`

La interfaz tiene dos pestañas:

### Miembros

Tabla de usuarios que muestra:

* Nombre y email de cada usuario
* Matriz de acceso a herramientas (checkmarks por cada herramienta)
* Filas expandibles para gestión detallada:
  * Cambiar rol por herramienta (admin/editor/viewer)
  * Quitar acceso a herramientas individuales
  * Gestionar membresía de equipos

### Invitar usuario

Formulario para invitar nuevos usuarios:

* Campo de email
* Selector múltiple de herramientas con rol por herramienta
* Los usuarios invitados reciben acceso automáticamente a las herramientas seleccionadas

<Note>
  La gestión de equipos requiere rol de administrador. Los usuarios sin permisos de admin ven un mensaje de acceso restringido.
</Note>

## API

| Método | Endpoint                         | Descripción                |
| ------ | -------------------------------- | -------------------------- |
| POST   | `/api/teams`                     | Crear equipo               |
| GET    | `/api/teams`                     | Listar equipos             |
| GET    | `/api/teams/:id`                 | Obtener equipo por ID      |
| PATCH  | `/api/teams/:id`                 | Actualizar equipo          |
| DELETE | `/api/teams/:id`                 | Eliminar equipo            |
| POST   | `/api/teams/:id/members`         | Agregar miembro al equipo  |
| PATCH  | `/api/teams/:id/members/:userId` | Actualizar miembro         |
| DELETE | `/api/teams/:id/members/:userId` | Quitar miembro             |
| GET    | `/api/teams/:id/members`         | Listar miembros del equipo |

## Relación con permisos

Los equipos se integran con el sistema de permisos:

* Los permisos se pueden asignar a un equipo completo (no solo a usuarios individuales)
* La visibilidad de módulos y grupos se controla por equipo
* Cuando un usuario pertenece a un equipo, hereda los permisos del equipo (si no tiene permisos individuales asignados)

## Gestión de herramientas por usuario

Desde la sección de Teams también se gestionan las asignaciones de herramientas:

| Método | Endpoint                                | Descripción                    |
| ------ | --------------------------------------- | ------------------------------ |
| POST   | `/api/tools/:toolId/invite`             | Invitar usuario a herramienta  |
| POST   | `/api/tools/:toolId/assign`             | Asignar usuario                |
| PATCH  | `/api/tools/:toolId/users/:userId/role` | Cambiar rol                    |
| DELETE | `/api/tools/:toolId/users/:userId`      | Quitar acceso                  |
| GET    | `/api/tools/:toolId/users`              | Listar usuarios de herramienta |

Estas operaciones se realizan a través de Auth0, actualizando los claims del JWT del usuario para reflejar sus permisos en las herramientas.
