Gadz.org souhaite privilégier l'Architecture Orientée Service (FR) afin de fluidifier les évolutions des applications ainsi que les évolutions technologiques.
Les messages doivent vérifier le schema JSON suivant : gorg_soa_message.schema.json
{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "event_name": { "type": "string", "pattern": "^[_a-z]+((\\.)?[_a-z]+)*$", "description": "Event type. Must match the routing key" }, "event_uuid": { "type": "string", "description": "The unique identifier of this message as UUID", "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}" }, "event_creation_time": { "type": "string", "description": "Creation time in UTC ISO 8601 format", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" }, "event_sender_id": { "type": "string", "description": "Producer that sent the original message" }, "data": { "type": "object", "description": "Data used to process this message" }, "errors_count": { "type": "integer", "description": "Helper for counting errors" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "error_type": { "enum": [ "debug", "info", "warning", "softerror", "harderror" ], "description": "Type of error." }, "error_sender": { "type": "string", "description": "Consummer that sent this error" }, "error_code":{ "type":"string", "description": "Optionnal error code from the consummer" }, "error_uuid":{ "type":"string", "description": "The unique identifier of this error as UUID", "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}" }, "error_message":{ "type":"string", "description": "Error explanation" }, "timestamp": { "type": "string", "description": "Time of occuring error in UTC ISO 8601", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" }, "error_debug": { "type": "object", "description": "Complementary informations for debugging" } }, "additionalProperties": false, "required": [ "error_type", "error_sender", "timestamp", "error_uuid", "error_message" ] } } }, "additionalProperties": false, "required": [ "event_name", "event_uuid", "event_creation_time", "event_sender_id", "data" ] } |
Exemple de message :
{ "event_uuid":"88d818a1-c77c-44e6-ad0c-8aa893468e94", "event_name":"request.gapps.account.create", "event_creation_time":"2016-05-29T15:03:50+00:00", "event_sender_id":"gram", "data":{ "id":"12453" }, "errors_count":1, "errors":[ { "error_type":"softerror", "error_uuid":"e157e1a0-2663-11e6-b67b-9e71128cae77", "error_sender":"gappsd", "error_message":"Google API Unavailable", "timestamp":"2016-05-29T15:03:50Z", "error_debug":{ "id":"12453" } } ] } |
Catalogue des services
I/O | Routing key | Action/Déclencheur | Format du JSON | |
---|---|---|---|---|
Requête | request.gapps.account.create | Crée un nouveau compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |
Requête | request.gapps.account.update | Met à jour un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |
Requête | request.gapps.account.delete | Supprime un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |
Requête | request.gapps.account.suspend | Suspend un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |
Notification | notify.gapps.account.updated | Un compte Google Apps a été modifié par Gappsd |
|
{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "event_name": { "type": "string", "pattern": "^[_a-z]+((\\.)?[_a-z]+)*$", "description": "Event type. Must match the routing key" }, "event_uuid": { "type": "string", "description": "The unique identifier of this message as UUID", "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}" }, "event_creation_time": { "type": "string", "description": "Creation time in UTC ISO 8601 format", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" }, "event_sender_id": { "type": "string", "description": "Producer that sent the original message" }, "data": { "type": "object", "description": "Data used to process this message" }, "errors_count": { "type": "integer", "description": "Helper for counting errors" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "error_type": { "enum": [ "debug", "info", "warning", "softerror", "harderror" ], "description": "Type of error." }, "error_sender": { "type": "string", "description": "Consummer that sent this error" }, "error_code":{ "type":"string", "description": "Optionnal error code from the consummer" }, "error_uuid":{ "type":"string", "description": "The unique identifier of this error as UUID", "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}" }, "error_message":{ "type":"string", "description": "Error explanation" }, "timestamp": { "type": "string", "description": "Time of occuring error in UTC ISO 8601", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" }, "error_debug": { "type": "object", "description": "Complementary informations for debugging" } }, "additionalProperties": false, "required": [ "error_type", "error_sender", "timestamp", "error_uuid", "error_message" ] } } }, "additionalProperties": false, "required": [ "event_name", "event_uuid", "event_creation_time", "event_sender_id", "data" ]}