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

De SIU
Saltar a: navegación, buscar
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="bash" enclose="div">
+
<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){ }
  
Una vez realizado el proceso de registración, ...?
+
    /**
 +
    * 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

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 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:

<?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(){ }
}