Registrar una aplicación en OpenPlatform
Una aplicación es un registro que el administrador crea en la pantalla de configuración (/setup/, la API de apps del plugin setup). El registro es el contrato entre OpenPlatform y tu aplicación: dónde vive, cómo se demuestran mutuamente quiénes son y qué puede hacer el usuario en ella. El esquema del registro es @Apps en plugins/setup/schemas/apps.js.
| Campo | Obligatorio | Significado |
|---|---|---|
name | sí | el nombre que se muestra en el portal |
url | sí | la dirección que abre OpenPlatform |
reqtoken | sí | un secreto que eliges y que conocen ambas partes: firma la petición |
restoken | sí | un segundo secreto, también compartido: la aplicación lo usa para firmar su respuesta |
color, icon | no | el aspecto de la aplicación en el portal |
meta | no | una dirección (URL) que devuelve los metadatos de la aplicación: la pantalla de configuración puede descargarlos (Apps/download) para rellenar el registro |
sortindex | no | el orden en la lista (una aplicación nueva va al final) |
notifications | no | si la aplicación puede enviar notificaciones |
isexternal | no | la aplicación no se abre dentro del marco del portal: la respuesta a la aplicación dice iframe: false |
isbookmark | no | la aplicación es un simple enlace: sin protocolo de tokens, solo un identificador de sesión en la query string |
isnewtab | no | ábrela en una pestaña nueva del navegador en lugar de en el marco del portal (el ajuste newtab lo hace para todas las aplicaciones) |
isscrollbar | no | el marco de la aplicación en el portal conserva su barra de desplazamiento (el portal pone scrolling en yes o no) |
isdisabled | no | apágala para todos: el usuario recibe "App has been temporary disabled" |
permissions | no | la lista de permisos de la aplicación: cada uno tiene un id, un name y un value (consulta grupos y permisos) |
La tabla tbl_app tiene además una columna allow ("permite solo direcciones IP concretas"): cuando contiene direcciones, la aplicación solo puede llamar a los endpoints del protocolo de OpenPlatform desde ellas. El esquema de configuración anterior no la lista, así que es una columna de la base de datos que rellenas directamente.
Los dos tokens
reqtoken y restoken nunca se envían al navegador. OpenPlatform deriva de ellos, para cada lanzamiento, los valores que viajan: el token en la dirección de la aplicación y la cabecera que la aplicación devuelve. La derivación está en cómo se conecta una app. Usa valores aleatorios largos y un par distinto para cada aplicación.
Eliminar y cambiar
Una aplicación nunca se borra de la tabla: eliminarla (Apps/remove) marca isremoved y la fecha de eliminación y limpia la caché de los usuarios que la tenían, y isdisabled la apaga sin eliminarla. Cuando cambia la dirección de la plataforma (el ajuste url), OpenPlatform limpia los enlaces de notificación de todos los usuarios y borra las sesiones de aplicación abiertas, porque ambos contienen esa dirección (ajustes y base de datos).
Recuerda la regla del README: una aplicación registrada no es visible para nadie hasta que se le asigna un grupo.