Propriétés de la page |
---|
|
Date de lancement | septembre 2016 |
---|
État du Service | État |
---|
subtle | true |
---|
colour | Green |
---|
title | Production |
---|
|
|
---|
Concepteurs | Dorian Becker, Alexandre Narbonne |
---|
Sources | https://github.com/gadzorg/gram2_api_server |
---|
Clés de routage écoutées | request.gramapi.group.update |
|
---|
Clés de routage émises | notify.account.created | notify.account.updated | notify.account.deleted | notify.group.created | notify.group.updated | notify.group.deleted | request.ldapd.account.update | request.ldapd.account.delete | request.ldapd.group.update | request.ldapd.group.delete |
|
---|
|
Présentation du service
Ce service fait l'interaction entre l'API GrAM et le système SOA
...
Hébergement | VOIR GrAM API 2 | Caractéristiques |
---|
Resources | User rabbitmq : rec-gram |
---|
Dépendances extérieures
Aucune spécifiques au service rabbitMQ, de manière générale voir GrAM API 2
Déploiement
Configuration
voir GrAM API 2
L'application fonctionne soit avec des varaibles d'environnement, soit avec un fichier de configuration.
Le fichier de configuration est situé dans config/rabbitmq.yml
Bloc de code |
---|
theme | Eclipse |
---|
title | Exemple de fichier config/rabbitmq.yml |
---|
|
default: &default
sender: gramapi
host: localhost
port: 5672
vhost: /
queue_name: logs
deferred_time: 5000
max_attempts: 10
exchange_name: "agoram_event_exchange"
user: guest
password:
logging_key: "log"
development:
<<: *default
test:
<<: *default
deferred_time: 10
max_attempts: 2
production:
<<: *default |
Tout ces attributs peuvent être indiquer en variable d'environnement en les mettant en majuscules et en prefixant le nom avec RABBITMQ_
Les variables d'environnement sont prioritaires sur le fichier de configuration
Exemple : RABBITMQ_HOST
Arret / Démarage
Sur Heroku :
Il suffit d'activer ou désactiver le dyno service_rabbitmq
En local :
Lancer la commande bundle exec rake gorg_service:run
pour démarrer le service
Ctrl+C pour le couper ou envoyer SIGINT
(kill -2
)
Installation
Infos pour les Dev'
...
Clé de routage | Quand ? | Contenu du message | Exemple de contenu |
---|
notify.account.created | Le compte a été créé dans le GrAM | key : l'uuid du compte changes : la liste des changement sous la forme Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"quoi": "Objet contenu dans l'attribut 'data' du message",
"format": "JSON" "attr1": [null,nouvelle_valeur_attr1],
"attr2": [null,nouvelle_valeur_attr2]
} |
| Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"key":"36a7e016-a300-4f52-85f4-6804dede6c6b",
"changes":{
"uuid":[null,"36a7e016-a300-4f52-85f4-6804dede6c6b"],
"hruid":[null,"paul.david-hewson.1986"],
"id_soce":[null,1556001],
"enabled":[null,true],
"lastname":[null,"David Hewson"],
"firstname":[null,"Paul"],
"birthname":[null,""],
"birth_firstname":[ null,""],
"email":[null,"[email protected]"],
"birthdate":[null,"1960-05-10"],
"is_gadz":[null,true],
"school_id":[null,""],
"date_sortie_ecole":[null,"1990-12-12"],
"buque_texte":[null,"Bono"],
"buque_zaloeil":[null,"Bono"],
"gadz_fams":[ null,"59"],
"gadz_fams_zaloeil":[null,""],
"gadz_proms_principale":[null,"1986"],
"gadz_proms_secondaire":[null,""],
"avatar_url":[null,"http://recette.soce.fr/images/"],
"url":[null,"/api/v2/accounts/36a7e016-a300-4f52-85f4-6804dede6c6b"]
}
} |
|
notify.account.updated | Le compte a été mis à jour dans le GrAM | key : l'uuid du compte changes : la liste des changement sous la forme Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"attr1": [ancienne_valeur_attr1,nouvelle_valeur_attr1],
"attr2": [ancienne_valeur_attr2,nouvelle_valeur_attr2]
} |
| Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"key":"ae96e86a-c761-4ebe-a4c4-a31a226e7620",
"changes":
{
"birthname": ["","VanelNaissance"],
"email":["[email protected]","[email protected]"],
"date_sortie_ecole":[null,"2002-01-01"]
}
} |
|
notify.account.deleted | Le compte a été supprimé du GrAM PAS ENCORE IMPLEMENTE | key : l'uuid du compte | Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"key":"ae96e86a-c761-4ebe-a4c4-a31a226e7620",
} |
|
notify.group.created | Le groupe a été créé dans le GrAM | key : l'uuid du compte changes : la liste des changement sous la forme Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"attr1": [null,nouvelle_valeur_attr1],
"attr2": [null,nouvelle_valeur_attr2]
} |
| |
notify.group.updated | Le groupe a été mis à jour dans le GrAM | key : l'uuid du compte changes : la liste des changement sous la forme Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"attr1": [ancienne_valeur_attr1,nouvelle_valeur_attr1],
"attr2": [ancienne_valeur_attr2,nouvelle_valeur_attr2]
} |
| Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"key":"ae96e86a-c761-4ebe-a4c4-a31a226e7620",
"changes":
{
"name": ["roots","Les Roots"],
}
} |
|
notify.group.deleted | Le groupe a été supprimé du GrAM PAS ENCORE IMPLEMENTE | key : l'uuid du groupe | Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"key":"ae96e86a-c761-4ebe-a4c4-a31a226e7620",
} |
|
Astuce |
---|
N'oubliez pas de mettre à jour la propriétés "Clés de routage émises" de la page avec les nouvelles routing keys |
...
Clé de routage | Actions effectuées | Contenu du message | Exemple de contenu |
---|
request.gramapi.group.update | Met à jours les informations d'un groupe à partir des données du message, y compris la liste des membres | Bloc de code |
---|
theme | Eclipse |
---|
title | SCHEMA JSON |
---|
| {
"$schema":"http://json-schema.org/draft-04/schema#",
"title":"Create Google Account message schema",
"type":"object",
"properties":{
"group_uuid":{
"type":"string",
"description":"The unique identifier of linked GrAM Account",
"pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
},
"name":{
"type":"string",
"description":"Long name of the group"
},
"short_name":{
"type":"string",
"description":"String identifier of the group"
},
"description":{
"type":"string",
"description":"Description text of the group"
},
"members":{
"type":"array",
"description":"UUIDs of group members",
"items":{
"type":"string",
"pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
}
}
},
"additionalProperties":true,
"required":[
"group_uuid",
"name",
"short_name",
"description",
"members"
]
} |
| Bloc de code |
---|
theme | Eclipse |
---|
language | javascript |
---|
| {
"quoi": "Objet contenu dans l'attribut 'data' du message",
"format": "JSON"
} |
|
...