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 “Comprender 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: Ajustes que controlan cómo se entregan las actualizaciones
- Propiedad: Información de acceso de la organización y del usuario
- Estadísticas de uso: Métricas sobre instalaciones y actualizaciones
Buenas 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
- MonitoreoConsulta 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 la paginaciónlimit: Opcional. 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 solicitud
Sección titulada “Ejemplo de solicitud”# 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 solicitud
Sección titulada “Cuerpo de la solicitud”interface CreateApp { app_id: string name: string icon?: string owner_org: string}Ejemplo de solicitud
Sección titulada “Ejemplo de solicitud”# 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 solicitud
Sección titulada “Cuerpo de la solicitud”interface UpdateApp { block_provider_infra_requests?: boolean name?: string icon?: string retention?: number}Ejemplo de solicitud
Sección titulada “Ejemplo de solicitud”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 los 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 solicitud
Sección titulada “Ejemplo de solicitud”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 del almacenamiento: Supervisa el uso del almacenamiento y establece políticas de retención adecuadas
- Organización: Agrupa aplicaciones relacionadas bajo una única organización
- Control de acceso: Manage which team members can modify app settings
- Estrategia de copia de seguridad: Copia de seguridad de configuraciones y ajustes críticos de la app
Continuar desde Apps
Sección titulada “Sigue avanzando desde Apps”Si estás usando Apps para planificar las operaciones del dashboard y de API, conéctalo con Resumen de API para los detalles de implementación en API Overview, Introducción para los detalles de implementación en la Introducción, Claves de API para el detalle de implementación en API Keys, Dispositivos para el detalle de implementación en Devices, y Bundles para el detalle de implementación en Bundles.