Saltar al contenido

Referencia de Control de Acceso

Capgo utiliza el control de acceso basado en rol (RBAC) para gestionar qué puede hacer cada miembro del equipo. Los roles se organizan por ámbito — desde la organización completa hasta un solo paquete. Roles are organized by scope — from the entire organization down to a single bundle. __CAPGO_KEEP_0__ uses role-based access control (RBAC) to manage what each team member can do.

For a visual walkthrough of managing members in the dashboard, see __CAPGO_KEEP_0__ Organización.


Cada rol pertenece a un ámbito que determina qué recurso concede acceso.

ÁmbitoAplica aUso de ejemplo
OrganizaciónLa organización completa y todos sus aplicativosTu cofundador obtiene Super Administrador; tu contable obtiene Administrador de facturación
AplicaciónUna aplicación y sus canalesUn contratista que trabaja en una aplicación obtiene el rol de Desarrollador de Aplicación
CanalesUn canal único dentro de una aplicaciónUn ingeniero de pruebas solo gestiona el staging canales
PaqueteUna versión de paquete únicaUn revisor necesita acceso de lectura a una versión de lanzamiento específica

Un miembro puede tener un rol por ámbito objetivo — por ejemplo, un rol de organización, un rol en Aplicación A y un rol diferente en Aplicación B.


Estos roles se asignan cuando se invita a un miembro. Otorgan acceso a toda la organización.

RolNombre internoDescripción
Administrador Supremoorg_super_adminEquivalente a dueño. Control total incluyendo eliminar la org, gestionar facturación, y transferir aplicaciones. Se concede automáticamente al creador de la org.
Administradororg_adminAdministración completa — gestionar miembros, aplicaciones, canales. No se puede eliminar la org, actualizar facturación, transferir aplicaciones, ni promover usuarios a Administrador Supremo.
Gerente de Facturaciónorg_billing_adminAcceso solo a facturación: ver y actualizar información de facturación, facturas, y registros de auditoría de facturación. Sin acceso a aplicaciones ni miembros.
Miembroorg_memberAcceso lector para la org y todos sus apps.
PermisoDescripciónAdministrador SupremoAdministradorGerente de FacturaciónMiembro
org.readVer la organización
org.update_settingsEditar nombre de la org, logo, correo de administración
org.deleteEliminar permanentemente la organización
org.read_membersVer la lista de miembros
org.invite_userInvitar nuevos miembros
org.update_user_rolesCambiar roles de miembro (el administrador no puede promover a Super Administrador — bloqueado por la jerarquía de roles)
org.read_billingVer información de facturación y plan actual
org.update_billingActualizar método de pago y plan
org.read_invoicesVer facturas
org.read_auditVer registro de actividad de la organización
org.read_billing_auditVer registro de auditoría específico de facturación

Limitado a una sola aplicación. Utilice estos cuando un miembro del equipo solo debe trabajar en una aplicación, no toda la organización.

RolNombre internoDescripción
Administrador de Aplicaciónapp_adminControl total de una aplicación — canales, dispositivos, roles de usuario para la aplicación. No se puede eliminar o transferir la aplicación (esas son operaciones de nivel de organización).
Desarrollador de Aplicaciónapp_developerSubir paquetes, gestionar dispositivos, desencadenar compilaciones nativas, actualizar configuraciones de canal. Sin eliminación, sin cambios en configuraciones de aplicación, sin creación de canales.
Subidor de Aplicaciónapp_uploaderAcceso de lectura + subir nuevas versiones de paquetes.
Lector de Aplicaciónapp_readerSolo lectura — estadísticas, paquetes, canales, registros, dispositivos.
PermisoDescripciónAdministrador de AplicaciónDesarrollador de AplicaciónSubidor de AplicaciónLector de Aplicación
app.readVer detalles de la aplicación, estadísticas y metadatos
app.update_settingsEditar ajustes de la aplicación
app.read_bundlesVer lista de paquetes subidos
app.upload_bundleSubir una nueva versión de paquete
app.create_channelCrear un nuevo canal
app.read_channelsVer canales
app.read_logsVer registros de entrega de actualizaciones
app.manage_devicesAsignar, sobreescribir o desvincular dispositivos
app.read_devicesVer la lista de dispositivos
app.build_nativeDesencadenar una compilación nube nativa
app.read_auditVer el registro de actividad de nivel de aplicación
app.update_user_rolesAdministrar asignaciones de roles de nivel de aplicación
bundle.deleteEliminar un paquete

Limitado a un solo canal. Útil para dar acceso objetivo a un canal de liberación específico.

PapelNombre internoDescripción
Administrador de canalchannel_adminControl total de un canal: configuración, promoción/retorno de paquetes, gestión de dispositivos forzados.
Vista de canalchannel_readerSolo lectura — paquete actual, historia, dispositivos forzados, registro de auditoría.
PermisoDescripciónAdministrador de canalVista de canal
channel.readVer el canal y su paquete actual
channel.update_settingsEditar ajustes de canal (tornillos de plataforma, política de actualización…)
channel.deleteBorrar el canal
channel.read_historyVer historial de asignación de paquete
channel.promote_bundleEstablecer el paquete activo en el canal
channel.rollback_bundleRevertir a un paquete anterior
channel.manage_forced_devicesForzar dispositivos específicos a este canal
channel.read_forced_devicesVer lista de dispositivos forzados
channel.read_auditVer registro de actividad del canal

Limitado a una versión de paquete única. Raramente necesario — la mayoría de los equipos utilizan roles de aplicación en su lugar.

RolNombre internoDescripción
Administrador de paquetebundle_adminAcceso de lectura, actualización de metadatos y eliminación de un paquete específico.
Vista de paquetebundle_readerAcceso de lectura solo a un paquete específico.

En el panel de control, el acceso a los canales se determina por defecto por el rol de la aplicación del usuario. Para un control más detallado, puede sobrescribir permisos de canal específicos por usuario o grupo sin cambiar su rol de aplicación.

Las sobrescripciones se configuran desde la pestaña Acceso del aplicativo haciendo clic en el botón de permisos de canal (ícono de escudo) junto a un usuario. Consulte Organización — Sobrescribiendo permisos de canal para una guía visual.

PermisoDescripciónComportamiento por defecto
LeerVer el canal y su paquete actualHerencia del rol de aplicación
HistorialVer el historial de asignación de paquetesHerencia del rol de aplicación
Asociar paqueteEstablecer o cambiar el paquete activo en el canalHerencia del rol de aplicación

Cada permiso se puede configurar para:

  • Predeterminado — heredar del rol de la aplicación (predeterminado)
  • Permitir — otorgar explícitamente, sin importar el rol de la aplicación
  • Denegar — bloquear explícitamente, sin importar el rol de la aplicación

Esto te permite, por ejemplo, dar a un Lector de Aplicación la capacidad de asociar paquetes en el staging canal sin promoverlos a Desarrollador de Aplicación.


Los roles forman una jerarquía. Un rol padre hereda todos los permisos de sus hijos. Esto significa que un org_admin puede hacer todo lo que un app_admin puede, lo que a su vez puede hacer todo lo que un channel_admin puede, y así sucesivamente.

Super Admin (org_super_admin)
└── Admin (org_admin)
└── App Admin (app_admin)
├── App Developer (app_developer)
│ └── App Uploader (app_uploader)
│ └── App Reader (app_reader)
├── Bundle Admin (bundle_admin)
│ └── Bundle Viewer (bundle_reader)
└── Channel Admin (channel_admin)
└── Channel Viewer (channel_reader)

Cómo funciona en la práctica:

  • Un Administrador en el nivel de la organización puede hacer todo lo que un Administrador de Aplicación puede, en cada aplicación de la organización.
  • Un Administrador de Aplicación puede hacer todo lo que un Administrador de Canal puede hacer en cada canal de esa aplicación.
  • Un Desarrollador de Aplicación puede hacer todo lo que un Subidor de Aplicación puede, más aún.

La jerarquía solo fluye hacia abajo — un channel_admin no gana permisos de nivel de organización, incluso si también posee un rol de nivel de aplicación.


En lugar de asignar roles a cada usuario individualmente, puede crear grupos y asignar roles al grupo. Cada miembro del grupo hereda esos roles automáticamente.

  • Un grupo pertenece a una organización — no puede abarcar varias orgs.
  • Los grupos pueden tener vinculaciones de roles Cualquier ámbito: organización, aplicación, canal o paquete. Por ejemplo, un grupo puede asignarse el Desarrollador de Aplicación rol en la aplicación A y el Administrador de Canal rol en el canal de la aplicación B. staging Cuando se evalúan los permisos de un usuario, todas sus pertenencias de grupo se resuelven de manera transparente. Si alguno de sus grupos concede el permiso requerido, se permite el acceso.
  • Un usuario puede pertenecer a
  • grupos múltiples , y los permisos de todos los grupos son adicionales.Los permisos basados en grupos solo se aplican a
  • Group-based permissions only apply to principales de usuario — Las API claves no heredan roles de grupo.
EscenarioSin gruposCon grupos
5 ingenieros de pruebas necesitan acceso de Desarrollador a 3 aplicaciones15 vinculaciones de rol individuales1 grupo + 3 vinculaciones de rol
Alguien se une al equipo de pruebasAgregar 3 vinculaciones de rol manualmenteAgregarlos al grupo
Alguien deja el equipo de QAEliminar 3 vinculaciones de rol manualmenteEliminarlos del grupo

Todas las endpoints de grupo requieren autenticación y se sirven bajo /private/groups.

Ventana de terminal
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

Requiere autenticación org.read_members permiso.

ventana de terminal
curl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Quality assurance engineers"
}'

Requiere org.update_user_roles permiso (Administrador Super o Administrador).

Ventana del terminal
curl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Updated description"
}'
Ventana del terminal
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

Eliminar un grupo también elimina todas sus vinculaciones de rol. Los miembros no se eliminan de la organización.

Ventana del terminal
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"
Ventana de terminal
curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "user_id": "<USER_UUID>" }'

El usuario ya debe ser miembro de la organización. Agregar a un miembro existente es un no-op.

Ventana de terminal
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

Ventana de terminal
curl -X GET "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "orgId": "<ORG_ID>" }'

Respuesta:

[
{
"uid": "user-uuid",
"email": "alice@example.com",
"image_url": "https://...",
"role": "org_admin",
"is_tmp": false
}
]
Ventana de terminal
curl -X POST "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com",
"invite_type": "org_admin"
}'

Valores aceptados para invite_type:

ValorRol asignado
org_super_adminAdministrador Super
org_adminAdministrador
org_billing_adminGerente de facturación
org_memberMiembro
Ventana de terminal
curl -X DELETE "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com"
}'

Ventana de terminal
npx @capgo/cli organization list --apikey <API_KEY>
Ventana de terminal
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

Los roles integrados cubren la mayoría de las estructuras de equipo. La creación de roles personalizados está en nuestra ruta de desarrollo — si esto es algo que necesita su equipo, contactenos. Su caso de uso ayudará directamente a priorizar esta función.

Siga adelante desde la Referencia de Control de Acceso

Sección titulada “Siga adelante desde la Referencia de Control de Acceso”

Si está utilizando Referencia de Control de Acceso para planificar operaciones de panel de control y API , conecte con API Overview para el detalle de implementación en API Resumen, Introducción para el detalle de implementación en Introducción, API Claves para el detalle de implementación en API Claves, Dispositivos para el detalle de implementación en Dispositivos, y Paquetes para el detalle de implementación en Paquetes.