Diferencia entre revisiones de «SIU-Arai/usuarios/integracion-inicial-toba»
m (avances doc integracion app toba) |
m (avances doc integracion app toba) |
||
Línea 10: | Línea 10: | ||
Una vez se tenga el archivo <code>composer.json</code>, se debe editar y agregar la librería [https://hub.siu.edu.ar/siu-arai/arai-cli arai-cli] a la lista de dependencias. | Una vez se tenga el archivo <code>composer.json</code>, se debe editar y agregar la librería [https://hub.siu.edu.ar/siu-arai/arai-cli arai-cli] a la lista de dependencias. | ||
− | <syntaxhighlight lang="bash" enclose="div"> | + | <syntaxhighlight lang="bash" enclose="div" highlight="3"> |
... | ... | ||
"require": { | "require": { | ||
Línea 36: | Línea 36: | ||
SIU-Toba proporciona una implementación de barra o lanzador de apliaciones, desde el cual se puede acceder a todas las aplicaciones integradas a la plataforma SIU-Arai (siempre y cuando tenga permiso de acceder el usuario particular). Esto se activa configurando el archivo <code>proyecto.ini</code> y agregando la siguente entrada: | SIU-Toba proporciona una implementación de barra o lanzador de apliaciones, desde el cual se puede acceder a todas las aplicaciones integradas a la plataforma SIU-Arai (siempre y cuando tenga permiso de acceder el usuario particular). Esto se activa configurando el archivo <code>proyecto.ini</code> y agregando la siguente entrada: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="yaml" enclose="div"> |
[proyecto] | [proyecto] | ||
... | ... | ||
Línea 45: | Línea 45: | ||
== Integrar a Arai-Registry la aplicación == | == Integrar a Arai-Registry la aplicación == | ||
− | Gracias a la librería [https://hub.siu.edu.ar/siu-arai/arai-cli arai-cli], se pueden registrar las aplicaciones de forma sencilla. En la [[SIU-Arai/registry#Funcionamiento|documentación]] de Arai-Registry se detalla este procedimiento. | + | Gracias a la librería [https://hub.siu.edu.ar/siu-arai/arai-cli arai-cli], se pueden registrar las aplicaciones a SIU-Arai de forma sencilla. En la [[SIU-Arai/registry#Funcionamiento|documentación]] de Arai-Registry se detalla como funciona este procedimiento. |
+ | |||
+ | === Configurar las necesidades === | ||
+ | |||
+ | Arai-Registry permite indicar que servicios consume y proporciona una aplicación. Para ello lo primero a realizar es crear un archivo llamado <code>arai.json</code> que esté ubicado en la raíz del proyecto con el siguiente contenido: | ||
+ | |||
+ | <syntaxhighlight lang="yaml" enclose="div" highlight="2,5"> | ||
+ | { | ||
+ | "name": "institucion/proyecto", | ||
+ | "description": "UNI-Proyecto, aplicación", | ||
+ | "scripts": { | ||
+ | "hooks": "UNI\\Proyecto\\AraiRegistryHooks" | ||
+ | }, | ||
+ | |||
+ | "consume": [ | ||
+ | { | ||
+ | "name": "service:siu/sso-saml-idp", | ||
+ | "version": ">=0.1.0" | ||
+ | }, | ||
+ | { | ||
+ | "name": "api:siu/arai-usuarios", | ||
+ | "version": ">=0.1.0", | ||
+ | "options": { | ||
+ | "toba-rest": [ | ||
+ | { "proyecto": "toba_usuarios", "rest-id": "rest_arai_usuarios" } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Es muy relevante establecer el atributo '''name''' y '''description''' con los valores deseados. Para el atributo '''hooks''', se debe completar con la ruta o ''namespace'' del proyecto hasta la clase php. Esta se crea en el siguiente paso. | ||
+ | |||
+ | === Hook de auto-configuración === | ||
+ | |||
+ | El hook de configuración es una clase php que extiende de [https://hub.siu.edu.ar/siu-arai/arai-cli/blob/master/src/SIU/AraiCli/Services/Registry/HooksInterface.php HooksInterface]. Este archivo tiene una nomenclatura estándar, siempre se denomina ''AraiRegistryHooks''. Se deberá crear dicha clase dentro del directorio /src del proyecto, o en algún punto que esté configurado con el autoloader de composer. Suponiendo en este ejemplo, el archivo sería <code>/src/UNI/Proyecto/AraiRegistryHooks.php</code>: | ||
+ | |||
+ | <syntaxhighlight lang="php" enclose="div" highlight="2"> | ||
+ | <?php | ||
+ | namespace UNI\Proyecto; | ||
+ | |||
+ | use SIU\AraiCli\Services\Registry\HooksInterface; | ||
+ | use SIU\AraiJsonParser\Feature\Consumption; | ||
+ | use SIU\AraiJsonParser\Feature\Feature; | ||
+ | use SIU\AraiJsonParser\Feature\Provision; | ||
+ | |||
+ | |||
+ | class AraiRegistryHooks implements HooksInterface | ||
+ | { | ||
+ | /** | ||
+ | * Se ejecuta antes de enviar una feature al registry. En esta ventana se deben configurar las features para incluir | ||
+ | * los datos dependientes de la instalación. | ||
+ | * @param Provision $feature una feature sin información de instalación, por ej: url. | ||
+ | */ | ||
+ | public function preProvide(Provision $feature){ } | ||
+ | |||
+ | /** | ||
+ | * Se ejecuta después de que se registra una provisión. Todos los consumidores están en $f->getConsumers() | ||
+ | * @param Provision $feature | ||
+ | */ | ||
+ | public function postProvide(Provision $feature){ } | ||
− | + | /** | |
+ | * Se ejecuta antes de enviar una feature para consumo al registry. | ||
+ | * @param Consumption $feature | ||
+ | */ | ||
+ | public function preConsume(Consumption $feature){ } | ||
+ | |||
+ | /** | ||
+ | * Se ejecuta cuando vuelve una feature del registry con los datos para su consumo. Este hook es utilizado para | ||
+ | * configurar el sistema a partir de la información en registry. | ||
+ | * @param Consumption $feature | ||
+ | */ | ||
+ | public function postConsume(Consumption $feature){ } | ||
+ | |||
+ | /** | ||
+ | * Se ejecuta luego de hacer un add | ||
+ | */ | ||
+ | public function postAdd(){ } | ||
+ | |||
+ | /** | ||
+ | * Se ejecuta luego de hacer un sync | ||
+ | */ | ||
+ | public function postSync(){ } | ||
+ | } | ||
+ | </syntaxhighlight> |
Revisión del 17:18 17 nov 2016
Sumario
Integrando una aplicación Toba
Requisitos previos
Utilizar Composer
Es recomendable que el proyecto se gestione mediante composer para la instalación y actualización de librerías y dependencias. En la wiki de SIU-Toba, se encuentra una referencia detallada de como realizar este paso.
Una vez se tenga el archivo composer.json
, se debe editar y agregar la librería arai-cli a la lista de dependencias.
"require": {
"siu-toba/framework": "2.7.x-dev",
"siu/arai-cli": "dev-master"
},
...
Se elige siempre la última versión estable de arai-cli, de la rama master.
Luego de realizar el cambio, siempre se debe proceder a actualizar la lista de dependencias:
Integración con toba-usuarios
Si el proyecto utiliza la gestión de usuarios que proporciona SIU-Toba, este punto es transparente y no requiere de cambios adicionales.
Integrar al menú de aplicaciones
SIU-Toba proporciona una implementación de barra o lanzador de apliaciones, desde el cual se puede acceder a todas las aplicaciones integradas a la plataforma SIU-Arai (siempre y cuando tenga permiso de acceder el usuario particular). Esto se activa configurando el archivo proyecto.ini
y agregando la siguente entrada:
...
;Esta entrada activa el uso del appLauncher
app_launcher = 1
Integrar a Arai-Registry la aplicación
Gracias a la librería arai-cli, se pueden registrar las aplicaciones a SIU-Arai de forma sencilla. En la documentación de Arai-Registry se detalla como funciona este procedimiento.
Configurar las necesidades
Arai-Registry permite indicar que servicios consume y proporciona una aplicación. Para ello lo primero a realizar es crear un archivo llamado arai.json
que esté ubicado en la raíz del proyecto con el siguiente contenido:
"name": "institucion/proyecto",
"description": "UNI-Proyecto, aplicación",
"scripts": {
"hooks": "UNI\\Proyecto\\AraiRegistryHooks"
},
"consume": [
{
"name": "service:siu/sso-saml-idp",
"version": ">=0.1.0"
},
{
"name": "api:siu/arai-usuarios",
"version": ">=0.1.0",
"options": {
"toba-rest": [
{ "proyecto": "toba_usuarios", "rest-id": "rest_arai_usuarios" }
]
}
}
]
}
Es muy relevante establecer el atributo name y description con los valores deseados. Para el atributo hooks, se debe completar con la ruta o namespace del proyecto hasta la clase php. Esta se crea en el siguiente paso.
Hook de auto-configuración
El hook de configuración es una clase php que extiende de HooksInterface. Este archivo tiene una nomenclatura estándar, siempre se denomina AraiRegistryHooks. Se deberá crear dicha clase dentro del directorio /src del proyecto, o en algún punto que esté configurado con el autoloader de composer. Suponiendo en este ejemplo, el archivo sería /src/UNI/Proyecto/AraiRegistryHooks.php
:
namespace UNI\Proyecto;
use SIU\AraiCli\Services\Registry\HooksInterface;
use SIU\AraiJsonParser\Feature\Consumption;
use SIU\AraiJsonParser\Feature\Feature;
use SIU\AraiJsonParser\Feature\Provision;
class AraiRegistryHooks implements HooksInterface
{
/**
* Se ejecuta antes de enviar una feature al registry. En esta ventana se deben configurar las features para incluir
* los datos dependientes de la instalación.
* @param Provision $feature una feature sin información de instalación, por ej: url.
*/
public function preProvide(Provision $feature){ }
/**
* Se ejecuta después de que se registra una provisión. Todos los consumidores están en $f->getConsumers()
* @param Provision $feature
*/
public function postProvide(Provision $feature){ }
/**
* Se ejecuta antes de enviar una feature para consumo al registry.
* @param Consumption $feature
*/
public function preConsume(Consumption $feature){ }
/**
* Se ejecuta cuando vuelve una feature del registry con los datos para su consumo. Este hook es utilizado para
* configurar el sistema a partir de la información en registry.
* @param Consumption $feature
*/
public function postConsume(Consumption $feature){ }
/**
* Se ejecuta luego de hacer un add
*/
public function postAdd(){ }
/**
* Se ejecuta luego de hacer un sync
*/
public function postSync(){ }
}