Apps
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Las apps son las entidades fundamentales en Capgo. Cada app representa una aplicación Capacitor única que puedes gestionar y actualizar a través de la plataforma. La API de Apps te permite crear, obtener, actualizar y eliminar configuraciones de apps.
Entender las apps
Sección titulada “Entender las apps”Una app en Capgo representa tu aplicación Capacitor e incluye:
- ID de la App: Identificador único de tu aplicación
- Nombre: Nombre legible de tu aplicación
- Iconos: Identificadores visuales de tu app en el dashboard
- Configuración: Configuración que controla cómo se entregan las actualizaciones
- Propiedad: Información de acceso de usuarios y organización
- Estadísticas de uso: Métricas sobre instalaciones y actualizaciones
Mejores prácticas
Sección titulada “Buenas prácticas”- Convención de nombres: Usa nombres claros e identificables para tus apps
- Seguridad: Protege tus claves de API y credenciales de acceso
- Organización: Agrupa apps relacionadas bajo la misma organización
- MonitorizaciónConsulta regularmente las estadísticas y el rendimiento de la app
- Backup: Mantén backups de configuración para apps críticas
Endpoints
Sección titulada “Endpoints”https://api.capgo.app/app/
Obtén información sobre tus apps.
Parámetros de consulta
Sección titulada “Parámetros de consulta”page: Opcional. Número de página para paginaciónlimit: Opcional. Número de resultados por página (por defecto: 50)org_id: Opcional. Filtra las apps por ID de organización. Si no se proporciona, devuelve las apps de todas las organizaciones a las que el usuario tiene acceso
Para obtener una app específica:
- Usa el app ID en la ruta de la URL:
https://api.capgo.app/app/:app_id
Tipo de respuesta
Sección titulada “Tipo de respuesta”Nota: last_version se refiere al último bundle (versión) subido para la app.
interface App { app_id: string block_provider_infra_requests: boolean created_at: string | null default_upload_channel: string icon_url: string id: string | null last_version: string | null // last bundle (version) name name: string | null owner_org: string retention: number transfer_history: Json[] | null updated_at: string | null user_id: string | null}Ejemplo de petición
Sección titulada “Ejemplo de petición”# Get all appscurl -H "authorization: your-api-key" \ "https://api.capgo.app/app/"
# Get apps from a specific organizationcurl -H "authorization: your-api-key" \ "https://api.capgo.app/app/?org_id=046a36ac-e03c-4590-9257-bd6c9dba9ee8"
# Get specific appcurl -H "authorization: your-api-key" \ "https://api.capgo.app/app/com.demo.app"Ejemplo de respuesta
Sección titulada “Respuesta de ejemplo”{ "data": [ { "block_provider_infra_requests": true, "app_id": "com.demo.app", "created_at": "2024-01-01T00:00:00Z", "default_upload_channel": "dev", "icon_url": "https://example.com/icon.png", "id": "550e8400-e29b-41d4-a716-446655440000", "last_version": "1.0.0", "name": "Demo App", "owner_org": "046a36ac-e03c-4590-9257-bd6c9dba9ee8", "retention": 2592000, "transfer_history": null, "updated_at": "2024-01-01T00:00:00Z", "user_id": "6aa76066-55ef-4238-ade6-0b32334a4097" } ]}https://api.capgo.app/app/
Crea una nueva app.
Cuerpo de la petición
Sección titulada “Cuerpo de la petición”interface CreateApp { app_id: string name: string icon?: string owner_org: string}Ejemplo de petición
Sección titulada “Ejemplo de petición”# Create new appcurl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "name": "My New App", "app_id": "com.demo.myapp", // this id is unique in Capgo This cannot be reused by any account. "icon": "https://example.com/icon.png", "owner_org": "046a36ac-e03c-4590-9257-bd6c9dba9ee8" }' \ https://api.capgo.app/app/Respuesta exitosa
Sección titulada “Respuesta exitosa”{ "block_provider_infra_requests": true, "app_id": "My New App", "created_at": "2024-01-01T00:00:00Z", "default_upload_channel": "dev", "icon_url": "https://example.com/icon.png", "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My New App", "owner_org": "046a36ac-e03c-4590-9257-bd6c9dba9ee8", "retention": 2592000, "updated_at": "2024-01-01T00:00:00Z"}https://api.capgo.app/app/:app_id
Actualiza una app existente. El ID de la app se especifica en la ruta de la URL.
Cuerpo de la petición
Sección titulada “Cuerpo de la petición”interface UpdateApp { block_provider_infra_requests?: boolean name?: string icon?: string retention?: number}Ejemplo de petición
Sección titulada “Ejemplo de petición”curl -X PUT \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "block_provider_infra_requests": true, "name": "Updated App Name", "icon": "https://example.com/updated-icon.png", "retention": 45 }' \ https://api.capgo.app/app/com.demo.appRespuesta exitosa
Sección titulada “Respuesta exitosa”{ "app_id": "com.demo.app", "created_at": "2024-01-01T00:00:00Z", "default_upload_channel": "dev", "block_provider_infra_requests": true, "icon_url": "https://example.com/updated-icon.png", "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Updated App Name", "owner_org": "046a36ac-e03c-4590-9257-bd6c9dba9ee8", "retention": 45, "updated_at": "2024-01-01T00:00:00Z"}ELIMINAR
Sección titulada “DELETE”https://api.capgo.app/app/:app_id
Elimina una app y todos sus recursos asociados. El ID de la app se especifica en la ruta de la URL. Úsalo con extrema precaución, ya que esta acción no se puede deshacer.
Ejemplo de petición
Sección titulada “Ejemplo de petición”curl -X DELETE \ -H "authorization: your-api-key" \ https://api.capgo.app/app/com.demo.appRespuesta exitosa
Sección titulada “Respuesta exitosa”{ "status": "ok"}Manejo de errores
Sección titulada “Manejo de errores”Todos los errores utilizan el formato estándar descrito en la visión general de API.
Escenarios de error comunes y sus respuestas:
// Missing or invalid API key (HTTP 401){ "error": "invalid_apikey", "message": "Invalid apikey", "moreInfo": {}}
// app_id is not a reverse-domain identifier{ "error": "invalid_app_id", "message": "App ID must be a reverse domain string", "moreInfo": { "app_id": "my app" }}
// The API key has no access to this app (HTTP 401){ "error": "cannot_access_app", "message": "You can't access this app", "moreInfo": { "app_id": "com.example.app" }}
// Creating an app in an organization the key cannot write to (HTTP 403){ "error": "cannot_access_organization", "message": "You can't access this organization", "moreInfo": { "org_id": "046a36ac-e03c-4590-9257-bd6c9dba9ee8" }}
// Retention above the two-year limit on update{ "error": "retention_to_big", "message": "Retention cannot be bigger than 63113903 (2 years)", "moreInfo": { "retention": 99999999 }}Casos de uso comunes
Sección titulada “Casos de uso comunes”- Crear nueva app
// Set up a new app{ "name": "Production App", "owner_org": "046a36ac-e03c-4590-9257-bd6c9dba9ee8"}- Actualizar configuración de la app
// Change app name and icon{ "name": "Rebranded App Name", "icon": "https://example.com/new-icon.png"}- Establecer política de retención
// Configure automatic bundle cleanup{ "retention": 30 // Keep bundles for 30 days}- Obtener apps por organización
# List all apps in a specific organizationcurl -H "authorization: your-api-key" \ "https://api.capgo.app/app/?org_id=046a36ac-e03c-4590-9257-bd6c9dba9ee8"Gestión de recursos
Sección titulada “Gestión de recursos”- Optimización de almacenamiento: Monitoriza el uso de almacenamiento y define políticas de retención adecuadas
- Organización: Agrupa apps relacionadas bajo una misma organización
- Control de accesoGestiona qué miembros del equipo pueden modificar la configuración de la app
- Estrategia de backup: Haz backup de configuraciones y ajustes críticos de la app
Continuar desde Apps
Sección titulada “Continúa desde Apps”Si estás usando Apps para planificar el dashboard y las operaciones de API, conéctalo con Resumen de API para el detalle de implementación en Resumen de API Overview, Introducción para el detalle de implementación en Introducción, Claves de API para los detalles de implementación en las API Keys, Dispositivos para los detalles de implementación en Dispositivos, y Bundles para los detalles de implementación en Bundles.