Installation du Back office

L'application de Back office est disponible sur github. Il est conseillé d'utiliser git pour télécharger les sources :

git clone https://github.com/EsupPortail/esup-smsu-api.git

N'hésitez pas également à utiliser GIT en interne pour exploiter et maintenir à jour vos instances.

Vous pouvez aussi trouver des zip sur cette page : https://github.com/EsupPortail/esup-smsu-api/tags.

Paramétrage

Le back office se déploie en mode servlet.
Configurez les fichiers :

Paramètres généraux

Voici la liste des paramètres disponibles :

Paramètres liés au broker

Les brokers disponibles sont "olm", "smsenvoi", "proxy" et "allmysms".


Broker allmysms

Voici la liste des paramètres disponibles dans le fichier src/main/resources/properties/config.properties :


Broker OLM

Voici la liste des paramètres disponibles dans le fichier src/main/resources/properties/broker/olm/libmgs.properties :

Broker smsenvoi

Voici la liste des paramètres disponibles dans le fichier src/main/resources/properties/config.properties :

Broker "proxy"

Création de la base de données

Le back office nécessite un serveur de base de données MySQL en version 5.

Création du schéma en base de donnée

Pour créer le schéma de base de donnée : se connecter au serveur mysql en tant qu'administrateur et saisir le mot de passe

mysql -u root -p -e "create database smsuapi"
mysql -u root -p smsuapi < src/main/resources/database/create_tables.sql
mysql -u root -p smsuapi < src/main/resources/database/create_qrtz_tables_esup-smsuapi.sql 

Nb : Aucune table ne doit être présente dans le schéma smsuapi au moment de l'exécution de cette commande sous peine d'échec.

Vérification des tables en base de données

Pour vérifier que les étapes précédentes se sont correctement déroulées : se connecter à la base de données et saisir le mot de passe :

mysql -u root -p -e "show tables" smsuapi

La liste des tables doit apparaître de la manière suivante :

+--------------------------+
| Tables_in_smsuapi        |
+--------------------------+
| QRTZ_BLOB_TRIGGERS       |
| QRTZ_CALENDARS           |
| QRTZ_CRON_TRIGGERS       |
| QRTZ_FIRED_TRIGGERS      |
| QRTZ_JOB_DETAILS         |
| QRTZ_JOB_LISTENERS       |
| QRTZ_LOCKS               |
| QRTZ_PAUSED_TRIGGER_GRPS |
| QRTZ_SCHEDULER_STATE     |
| QRTZ_SIMPLE_TRIGGERS     |
| QRTZ_TRIGGERS            |
| QRTZ_TRIGGER_LISTENERS   |
| account                  |
| application              |
| blacklist                |
| institution              |
| sms                      |
| statistic                |
+--------------------------+

Déploiement

mvn package

puis copiez le war dans le répertoire webapps de tomcat.

ou si vous préférez vous pouvez utiliser ant en configurant préalablement le chemin de déploiement dans build.properties

ant deploy


L'application peut être déployée dans un serveur d'applications existant, voir la documentation du framework esup-commons

Lancement de l'application

en test

L'application se lance par la tache

ant jetty.run

# or
mvn jetty:run

en production

L'application se lance quand on lance le serveur tomcat.

Pour envoyer plus de 10000 SMS, il faut configurer le paramètre tomcat "maxParameterCount".

Les services REST d'esup-smsu-api sont synchrones : esup-smu-api ne répond que lorsque l'opération demandée est effectivement traitée. Aussi si une requête sur smsu-api correspond à demander à envoyer un sms à plusieurs milliers de numéros de téléphones, le temps de réponse peut être long. Il faut donc s'assurer qu'aucun timeout au niveau d'un éventuel reverse-proxy ne vienne perturber le bon renvoi de la réponse par esup-smus-api.

→ Sous apache, on positionnera un timeout sur le proxypass suffisamment conséquent : par exemple 1 heure et non 1 minute comme positionné par défaut.

ProxyPass / ajp://localhost:8009/ retry=1 timeout=3600

Configuration sans esup-smsu-api-admin

La façon recommandée d'administrer esup-smsu-api est d'utiliser esup-smsu-api-admin.

Il est néanmoins possible de s'en passer, en modifiant directement la base de données smsu-api. Pour faire la configuration initiale à la main, vous pouvez faire :

insert into institution (INS_LABEL) values ("monUniv");
insert into account (ACC_LABEL, ACC_QUOTA) values ("test", 100);
insert into application (INS_ID, ACC_ID, APP_NAME, APP_CERTIFCATE, APP_QUOTA) values (1, 1, "test", "leMotDePassePourAllerAvecLeUserTest", 20);