Referencia de Control de Acceso
Copia un prompt de configuración con los pasos de instalación y la guía markdown completa para este plugin.
Capgo utiliza control de acceso basado en roles (RBAC) para gestionar qué puede hacer cada miembro del equipo. Los roles se organizan por ámbito desde toda la organización hasta un solo paquete.
Para una guía visual de la gestión de miembros en la consola, consulte Organización.
Ámbitos de rol
Título de la sección ‘Ámbitos de rol’Cada rol pertenece a un ámbito que determina qué recurso concede acceso.
| Ámbito | contexto: Página/área: Soporte / página de soporte premium o sección de soporte en el pie de página. Rol: Título de sección o página. Visto en: página support-policy.astro. Clave de mensaje `support_policy_scope_title` (Título de política de soporte por ámbito). | Ejemplo de uso |
|---|---|---|
| Organización | La organización completa y todas sus aplicaciones | Tu cofundador obtiene Super Administrador; tu contable obtiene Administrador de Facturación |
| Aplicación | Una sola aplicación y sus canales | Un contratista que trabaja en una aplicación obtiene Desarrollador de Aplicación |
| Canales | Un solo canal dentro de una aplicación | Un ingeniero de pruebas solo gestiona el staging canal |
| Paquete | A una versión de paquete única | Un 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 App A y un rol diferente en App B.
Roles de organización
Título de la sección “Roles de organización”Estos roles se asignan cuando se invita a un miembro. Otorgan acceso a toda la organización.
| Rol | Nombre interno | Descripción |
|---|---|---|
| Administrador principal | org_super_admin | Propietario-equivalente. Control total incluyendo la eliminación de la organización, la gestión de facturación y la transferencia de aplicaciones. Se concede automáticamente al creador de la organización. |
| Administrador | org_admin | Administración completa — gestionar miembros, aplicaciones, canales. No se puede eliminar la organización, actualizar la facturación, transferir aplicaciones ni promover a usuarios a Super Administrador. |
| Gerente de facturación | org_billing_admin | Acceso solo a facturación: ver y actualizar información de facturación, facturas e historial de auditoría de facturación. Sin acceso a aplicaciones ni miembros. |
| Miembro | org_member | Matriz de permisos de la organización |
Sección titulada “Matriz de permisos de la organización”
Permiso| Descripción | Super Administrador | Matriz de permisos de la organización | Administrador | Gerente de facturación | Miembro |
|---|---|---|---|---|---|
org.read | Ver la organización | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Editar nombre, logo y correo electrónico de administración de la organización | ✅ | ✅ | ❌ | ❌ |
org.delete | Eliminar la organización permanentemente | ✅ | ❌ | ❌ | ❌ |
org.read_members | Ver la lista de miembros | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Invitar nuevos miembros | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Cambiar roles de miembros (el administrador no puede promover a Super Administrador — bloqueado por la jerarquía de roles) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Ver información de facturación y plan actual | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Actualizar método de pago y plan | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Ver facturas | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Ver el registro de actividad de la organización | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Ver el registro de auditoría específico de facturación | ✅ | ✅ | ✅ | ❌ |
Administrador de la aplicación
Sección titulada “Roles de la aplicación”Limitado a una sola aplicación. Utiliza estos cuando un miembro del equipo debe trabajar solo en una aplicación, no en toda la organización.
| Rol | Nombre interno | Descripción |
|---|---|---|
| Administrador de la aplicación | app_admin | Control total de una aplicación — canales, dispositivos, roles de usuario para la aplicación. No se puede eliminar ni transferir la aplicación (estos son operaciones de nivel de organización). |
| Desarrollador de la aplicación | app_developer | Cargar paquetes, gestionar dispositivos, desencadenar compilaciones nativas, actualizar configuraciones de canal. Sin eliminación, sin cambios en la configuración de la aplicación, sin creación de canales. |
| Subidor de la aplicación | app_uploader | Acceso de lectura + cargar nuevas versiones de paquetes. |
| Leer de la aplicación | app_reader | Vista solo de lectura — estadísticas, paquetes, canales, registros, dispositivos. |
| Vista previa de la aplicación | app_preview | Ciclo de vida de CI vinculado a la organización y la aplicación: subir un paquete y crear un canal de vista previa. Crear ese canal concede automáticamente derechos de ciclo de vida solo para él. |
Matriz de permisos de la aplicación
Título de la sección “Matriz de permisos de la aplicación”| Permiso | Descripción | Administrador de la aplicación | Desarrollador de la aplicación | Subidor de la aplicación | Leer la aplicación, detalles, estadísticas y metadatos |
|---|---|---|---|---|---|
app.read | Ver detalles de la aplicación, estadísticas y metadatos | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Editar ajustes de la aplicación | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Ver la lista de paquetes cargados | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Subir una nueva versión de paquete | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Crear un nuevo canal | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Ver canales | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Ver registros de entrega de actualizaciones | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Asignar, sobreescribir o desvincular dispositivos | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Ver lista de dispositivos | ✅ | ✅ | ✅ | ✅ |
app.build_native | Desencadenar una construcción nube nativa | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Ver registro de actividad de la aplicación | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Gestionar asignaciones de roles de la aplicación | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Eliminar un paquete | ✅ | ❌ | ❌ | ❌ |
Conjunto de permisos de vista previa de la aplicación
Título de la sección “Conjunto de permisos de vista previa de la aplicación”Usar Vista previa de la aplicación (app_preview) para una clave de CI vinculada a la organización y la aplicación que gestiona el ciclo de vida de una vista previa de PR sin acceso amplio a la aplicación o a nivel de organización.
La app_preview concede solo estos permisos de nivel de aplicación:
| Permiso | Permite |
|---|---|
app.read | Leer la aplicación seleccionada |
app.read_bundles | Leer los paquetes cargados |
app.upload_bundle | Cargar un paquete |
app.create_channel | Crear un canal |
When an App Preview key creates a channel, Capgo automatically gives that key a child channel_preview concesión para el nuevo canal solo:
| Permiso | Permite |
|---|---|
channel.read | Lee el canal creado por la clave |
channel.promote_bundle | Establezca la propia carga de la clave subida en ese canal |
channel.delete | Bórre ese canal |
Porque app_preview conserva app.read, la clave puede enumerar los metadatos del canal en la aplicación seleccionada. La unión automática de hijos es un límite de gestión: no concede mutaciones de ciclo de vida para un canal que la clave no creó. __CAPGO_KEEP_0__ registra la clave de vista previa que creó cada canal y subió cada paquete. Por lo tanto, una clave de vista previa de aplicación puede crear cada canal de vista previa no público que necesita, promover su propia carga y borrarla y el canal de manera atómica con
Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundle, la gestión de dispositivos o roles
retiene app.update_settingsporque channel.update_settings, channel.rollback_bundleCuidado bundle.delete.
Título de la sección “Roles de canal”
Limitado a un solo canal. Útil para dar acceso objetivo a un canal de liberación específico.Cuidado
| Rol | Nombre interno | Descripción |
|---|---|---|
| Administrador de canal | channel_admin | Control total de un canal: configuración, promoción/rollback de paquetes, gestión de dispositivos forzados. |
| Vista de canal | channel_reader | Leer sólo — paquete actual, historia, dispositivos forzados, registro de auditoría. |
| Vista previa de canal | channel_preview | Asignado por el sistema a la clave de vista previa de App que creó el canal: lectura, promoción de su propio paquete y eliminación de ese canal. |
Matriz de permisos de canal
Sección titulada “Matriz de permisos de canal”| Permiso | Descripción | Administrador de canal | Vista de canal | Vista previa de canal |
|---|---|---|---|---|
channel.read | Ver el canal y su paquete actual | ✅ | ✅ | ✅ |
channel.update_settings | Editar ajustes del canal (tornillos de plataforma, política de actualización…) | ✅ | ❌ | ❌ |
channel.delete | Borrar el canal | ✅ | ❌ | ✅ |
channel.read_history | Ver historial de asignación de paquetes | ✅ | ✅ | ❌ |
channel.promote_bundle | Establecer el paquete activo en el canal | ✅ | ❌ | ✅ |
channel.rollback_bundle | Volver a una versión de paquete anterior | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Forzar dispositivos específicos a este canal | ✅ | ❌ | ❌ |
channel.read_forced_devices | Ver la lista de dispositivos forzados | ✅ | ✅ | ❌ |
channel.read_audit | Ver el registro de actividad del canal | ✅ | ✅ | ❌ |
Roles de paquete
Título de la sección “Roles de paquete”Limitado a una sola versión de paquete. Rara vez es necesario — la mayoría de los equipos utilizan roles de aplicación en su lugar.
| Rol | Nombre interno | Descripción |
|---|---|---|
| Administrador de paquete | bundle_admin | Leer, actualizar metadatos y eliminar un paquete específico. |
| Vista de paquete | bundle_reader | Sobrescribir permisos de canal (Panel de control) |
Sección titulada “Sobrescribir permisos de canal (Panel de control)”
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, puedesobrescribir permisos de canal específicos por usuario o grupo sin cambiar su rol de aplicación. Bundle Admin
Se configuran las sobrescrituras desde la aplicación Acceso Pestaña Haga 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.| Sobrescrituras de permisos | Sección titulada ‘Sobrescrituras de permisos’ | Permiso |
|---|---|---|
| Descripción | Comportamiento por defecto | Herencia del rol de aplicación |
| Historial | Ver el historial de asignación de paquete | Herencia del rol de aplicación |
| Asociar paquete | Establecer o cambiar el paquete activo en el canal | Herencia del rol de aplicación |
Cada permiso puede configurarse a:
- Predeterminado — heredar del rol de aplicación (por defecto)
- Permitir — conceder explícitamente, sin importar el rol de aplicación
- Denegar — bloquear explícitamente, sin importar el rol de la aplicación
Esto te permite, por ejemplo, dar a un lector de aplicaciones la capacidad de asociar paquetes en el staging canal sin promoverlos a desarrollador de aplicaciones.
Estructura de roles
Título de la sección “Estructura de roles”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 hacer, lo que a su vez puede hacer todo lo que un channel_admin puede hacer, 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 en una aplicación específica puede hacer todo lo que un Administrador de Canal puede, 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 en abajo — nunca gana permisos de nivel de organización, incluso si también tienen un rol de nivel de aplicación. channel_admin Grupos
Título de sección “Grupos”
En lugar de asignar roles a cada usuario individualmente, puede crear__CAPGO_KEEP_0__ grupos y asignar roles al grupo. Cada miembro del grupo hereda automáticamente esos roles.
Cómo funcionan los grupos
Título de la sección “Cómo funcionan los grupos”- Un grupo pertenece a una organización — no puede abarcar varias orgs.
- Los grupos pueden contener vinculaciones de roles en cualquier ámbito: org, app, canal, o paquete. Por ejemplo, un grupo puede ser asignado el Desarrollador de Aplicación rol en App A y el Administrador de Canal rol en el
stagingcanal de App B. - Cuando se evalúan los permisos de un usuario, todos sus miembros 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.
- Las permisiones basadas en grupos solo se aplican a principales de usuario — las llaves API no heredan roles de grupo.
Cuándo usar grupos
Cuándo usar grupos| Escenario | Sin grupos | Con grupos |
|---|---|---|
| 5 ingenieros de pruebas necesitan acceso de desarrollador a 3 aplicaciones | 15 vinculaciones de roles individuales | 1 grupo + 3 vinculaciones de roles |
| Alguien se une al equipo de pruebas | Agregar 3 vinculaciones de roles manualmente | Agregarlos al grupo |
| Alguien deja el equipo de pruebas | Eliminar 3 vinculaciones de roles manualmente | Eliminarlos del grupo |
Gestionar grupos a través de API
Sección titulada “Gestionar grupos a través de API”Todos los puntos finales de grupo requieren autenticación y se sirven bajo /private/groups.
Listar grupos
Ventana de terminalcurl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"permiso. org.read_members Crear un grupo
Sección titulada “Crear un grupo”
Ventana de terminalcurl -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 principal o contexto: HTML fragmento de texto de una cadena de Capgo UI más larga (clave de padre `alternatives_cta_questions`). Página/área: página de comparación de actualizaciones en vivo de Capacitor. Rol: párrafo de marketing o legal largo. Visto en: página alternatives.astro. Preservar términos de producto y marca de Capgo y términos de desarrollador exactamente. Clave de mensaje `alternatives_cta_questions` (Preguntas de CTAs de Alternativas). | Fragmento de texto de UI de Capgo más largo (clave de padre `appflow_cta_questions`). Página/área: copia de marketing de comparación/migración de Appflow. Rol: párrafo de marketing o legal largo. Visto en: página ionic-appflow.astro. Preservar términos de producto y marca de Capgo y términos de desarrollador exactamente. Clave de mensaje `appflow_cta_questions` (Preguntas de CTAs de Appflow). | Fragmento de texto de UI de Capgo más largo (clave de padre `capwesome_cta_questions`). Página/área: página de comparación de Capawesome. Rol: párrafo de marketing o legal largo. Visto en: página capwesome.astro. Preservar términos de producto y marca de Capgo y términos de desarrollador exactamente. Clave de mensaje `capwesome_cta_questions` (Preguntas de CTAs de Capwesome). | Fragmento de texto de UI de Capgo más largo (clave de padre `consulting_faq_subtitle`). Página/área: página de servicios de consultoría. Rol: subtítulo o encabezado de sección. Visto en: página consulting.astro. Preservar términos de producto y marca de Capgo y términos de desarrollador exactamente. Clave de mensaje `consulting_faq_subtitle` (Subtítulo de preguntas de FAQ de consultoría). | Página/área: copia de marketing de comparación/migración de Appflow. Rol: etiqueta de UI corta o elemento de navegación. Visto en: página ionic-appflow.astro, página ionic-enterprise-plugins.astro, página soluciones/ionic-enterprise-plugins.astro. Clave de mensaje `appflow_plugins_or` (Appflow Plugins o).).
Administrador
Actualizar un grupocurl -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" }'Copiar a la papelera
Borrar un grupocurl -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.
Listar miembros del grupo
Título de sección “Listar miembros del grupo”curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Agregar un miembro a un grupo
Título de sección “Agregar un miembro a un grupo”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 un miembro existente es una operación sin efecto.
Eliminar a un miembro de un grupo
Sección titulada “Eliminar a un miembro de un grupo”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Asignar roles mediante API
Sección titulada “Asignar roles mediante API”Lista de miembros
Sección titulada “Lista de miembros”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 }]Invitar a un miembro
Sección titulada “Invitar a un miembro”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:
| Valor | Rol asignado |
|---|---|
org_super_admin | Administrador principal |
org_admin | Administrador |
org_billing_admin | Gerente de facturación |
org_member | Miembro |
Eliminar un miembro
Sección titulada “Eliminar un miembro”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" }'Asignar roles a través de CLI
Sección titulada “Asignar roles a través de CLI”Listar organizaciones
Sección titulada “Listar organizaciones”npx @capgo/cli organization list --apikey <API_KEY>lista de miembros
Título de la sección “Lista de miembros”npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>roles personalizados
Título de la sección “Roles personalizados”Los roles incorporados cubren la mayoría de las estructuras de equipo. La creación de roles personalizados está en nuestra ruta de desarrollo — si su equipo necesita esto, contactenosSu caso de uso ayudará directamente a priorizar esta función.
Continúe desde la Referencia de Control de Acceso
Título de la sección “Continúe desde la Referencia de Control de Acceso”Si está utilizando Referencia de Control de Acceso para planificar la pantalla de dashboard y las operaciones de API, conecte con API Overview para obtener detalles de implementación en API Overview Introducción para obtener detalles de implementación en Introducción API Keys 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.