Diferencia entre revisiones de «SIU-Arai/usuarios/integracion-inicial-toba»

De SIU
Saltar a: navegación, buscar
m (avances doc integracion app toba)
(avances doc integracion app toba)
Línea 81: Línea 81:
 
=== Hook de auto-configuración ===
 
=== 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>:
+
El hook de configuración es una clase php que implementa la interfaz [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'' y para proyectos SIU-Toba, extienden de ''RegistryHooksProyectoToba''. 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">
 
<syntaxhighlight lang="php" enclose="div" highlight="2">
Línea 87: Línea 87:
 
namespace UNI\Proyecto;
 
namespace UNI\Proyecto;
  
use SIU\AraiCli\Services\Registry\HooksInterface;
+
use SIUToba\Framework\Arai\RegistryHooksProyectoToba;
use SIU\AraiJsonParser\Feature\Consumption;
 
use SIU\AraiJsonParser\Feature\Feature;
 
use SIU\AraiJsonParser\Feature\Provision;
 
  
 
+
class AraiRegistryHooks extends RegistryHooksProyectoToba
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()
+
</syntaxhighlight>
    * @param Provision $feature
 
    */
 
    public function postProvide(Provision $feature){ }
 
  
    /**
+
=== Registrarse por primera vez ===
    * Se ejecuta antes de enviar una feature para consumo al registry.
 
    * @param Consumption $feature
 
    */
 
    public function preConsume(Consumption $feature){ }
 
  
    /**
+
Si todo está en orden, el proceso de registración a la plataforma SIU-Arai de la aplicación se concreta con los siguientes comandos:
    * 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:36 17 nov 2016

Siu-arai iso.png

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:

composer update

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:

[proyecto]
...
;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 implementa la interfaz HooksInterface. Este archivo tiene una nomenclatura estándar, siempre se denomina AraiRegistryHooks y para proyectos SIU-Toba, extienden de RegistryHooksProyectoToba. 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:

<?php
namespace UNI\Proyecto;

use SIUToba\Framework\Arai\RegistryHooksProyectoToba;

class AraiRegistryHooks extends RegistryHooksProyectoToba
{

}

Registrarse por primera vez

Si todo está en orden, el proceso de registración a la plataforma SIU-Arai de la aplicación se concreta con los siguientes comandos: