Paramètres d'un Partenaire d'Échange
Cette page présente l’ensemble des paramètres des partenaires d’Ara et leur utilité.
Format des paramètres
Tous les paramètres sont des chaines de caractère, mais ils peuvent être interprétés en tant qu’entiers, tableaux, etc…
Un entier (int) avec une valeur incorrecte sera interprété en tant que 0.
Un booléen (bool) doit prendre la valeur “true” ou “false”. Une valeur incorrecte sera interprétée comme false.
Une string est une chaine de caractère.
Un tableau de string ([]string) est une succession de string séparés par des virgules (exemple : “token1,token2“)
Une durée (duration) est une séquence de nombres décimaux potentiellement signés, chacun avec un suffixe comme “300ms”, “-1.5h” ou “2h45m”. Les unités valides sont : "ns", "us" (ou "µs"), "ms", "s", "m", "h".
Liste des paramètres
Paramètres de connexion
Ara effectuera des requêtes en utilisant OAuth si les 3 paramètres remote_authentication.oauth.client_id, remote_authentication.oauth.client_secret et remote_authentication.oauth.token_url sont définis. Le paramètre remote_authentication.oauth.scopes est a ajouter si il est requis par le client utilisant OAuth.
Nom | Type | Description |
local_credential | string | Token permettant d'identifier les requêtes entrantes, doit être unique |
local_credentials | []string | Liste de tokens permettant d'identifier les requêtes entrantes, chacun doit être unique. S’additionne à un éventuel Token défini dans local_credential |
remote_credential | string | Token permettant de s’identifier lorsqu'Ara envoie des requêtes |
remote_authentication.oauth.client_id | string | Identifiant utilisé pour récupérer le Token lors d'échanges utilisant OAuth |
remote_authentication.oauth.client_secret | string | Secret utilisé pour récupérer le Token lors d'échanges utilisant OAuth |
remote_authentication.oauth.token_url | string | Adresse où le client http ARA peut récupérer le Token lors d'échanges utilisant OAuth |
remote_authentication.oauth.scopes | []string | Liste de scopes pour récupérer le Token lors d'échanges utilisant OAuth |
local_url | srting | Adresse d’Ara envoyée dans le paramètre SIRI Address |
remote_url | string | Adresse du partenaire distant |
notifications.remote_url | string | Adresse à laquelle envoyer les notifications d’abonnement. En l’absence de ce paramètre, remote_url sera utilisé |
subscriptions.remote_url | string | Adresse à laquelle envoyer les demandes d’abonnement. En l’absence de ce paramètre, remote_url sera utilisé |
partner.status.maximum_retry | int | Nombre de fois que l’on peut effectuer un CheckStatus avec un statut Unknown avant d’effectivement passer le statut du partenaire à Unknown. |
rate_limit_per_ip | int | Limiter le nombre de requêtes par minute et par adresse IP reçues par Ara pour un partenaire. |
Paramètres d’identifiants
Nom | Type | Description |
remote_code_space | string | Type d’identifiant utilisé par le partenaire |
<connector_name>.remote_code_space | string | Type d’identifiant utilisé par un connecteur de diffusion particulier. Liste des connecteurs supportant ce paramètre : gtfs-rt-trip-updates-broadcaster |
<connector_name>.vehicle_remote_code_space | string | Type d’identifiant utilisé pour les véhicules par un connecteur de diffusion particulier. Liste des connecteurs supportant ce paramètre : gtfs-rt-vehicle-positions-broadcaster siri-vehicle-monitoring-request-broadcaster |
Paramètres de format
génerateurs d’identitiants
Les générateurs utilisent tous la même syntaxe : une chaîne de caractères dans laquelle on peut utiliser des valeurs d’un attribut comprises dans “%{}”. Exemple : “Operator:Stop::%{id}:LOC”.
Les valeurs possible sont : id, type, et uuid.
uuid est utilisable dans n’importe quel générateur et insèrera un uuid généré par Ara. Pour les autres valeurs, leur utilisation dépend du générateur.
envelope
L’envelope permet de specifier un format SIRI autre que SOAP
qui est le format par défaut de l’enveloppe des messages SIRI utilisé par ARA.
Nom | Type | Description |
generators.message_identifier | string | Generateur utilisé pour l’attribut SIRI MessageIdentifier. Ne supporte que uuid |
generators.response_message_identifier | string | Generateur utilisé pour l’attribut SIRI ResponseMessageIdentifier. Ne supporte que uuid |
generators.data_frame_identifier | string | Generateur utilisé pour l’attribut SIRI MessageIdentifier. Ne supporte que les attributs id et uuid. L’attribut id contiendra le modelDate d’Ara (la date sous la forme YYYY-MM-DD) |
generators.reference_identifier | string | Generateur utilisé pour toutes les références à des objets SIRI que l’on réécrit ou qui ne possèdent pas d’objectid du bon type. Ne supporte que type et uuid |
generators.reference_stop_area_identifier | string | Generateur utilisé pour toutes les références à des StopAreas que l’on arrive pas à retrouver dans Ara. Ne supporte que id, et uuid |
generators.subscription_identifier | string | Generateur utilisé pour les identifiants d’abonnement émis par Ara. Ne supporte que uuid |
siri.envelope | string | Format spécifique de l’enveloppe des messages SIRI autre que |
Paramètres de collecte
Les paramètres “collect.include_XXX” et “collect.exclude_XXX” fonctionnent de la manière suivante :
Si tous les paramètres sont vides, tout sera collecté
Si le paramètre “collect.use_discovered_stop_areas” est défini, nous ne collecterons que les arrêts collectés via le protocole StopPointsDiscovery à l’exception de ceux définis par “collect.exclude_lines” et “collect.exclude_stop_areas”
Sinon, nous regardons si l’on peut collecter l’arrêt et au moins une de ses lignes. Si un paramètre “collect.include_XXX” est vide, on collecte tout ce qui n’est pas excplicitement exclu
Nom | Type | Description |
collect.priority | int | Priorité du partenaire pour la collecte. Si deux partenaires peuvent collecter le même arrêt, celui avec la plus grande priorité sera choisi |
collect.include_lines | []string | Liste d’identifiants de lignes que le partenaire doit collecter. Utilise le format d’identifiant défini dans remote_code_space |
collect.exclude_lines | []string | Liste d’identifiants de lignes que le partenaire ne doit pas collecter. Utilise le format d’identifiant défini dans remote_code_space |
collect.include_stop_areas | []string | Liste d’identifiants d’arrêts que le partenaire doit collecter. Utilise le format d’identifiant défini dans remote_code_space |
collect.exclude_stop_areas | []string | Liste d’identifiants d’arrêts que le partenaire ne doit pas collecter. Utilise le format d’identifiant défini dans remote_code_space |
collect.use_discovered_stop_areas | bool | Le partenaire collectera les arrêts découverts grâce à une requête de StopPointsDiscovery en plus de ceux éventuellement définis dans les paramètres collect.include_XXX |
collect.situations.internal_tags | []string | Liste de tags qui seront affectées a des situations collectées en GeneralMessage et en SituationExchange |
collect.subscriptions.persistent | bool | Permet de ne pas supprimer les abonnements de collecte si le statut du partenaire devient DOWN ou UNKNOWN OBSOLÈTE : utiliser le paramètre collect.persistent à la place |
collect.persistent | bool | Permet de ne pas supprimer les abonnements et requêtes de collecte si le statut du partenaire devient DOWN ou UNKNOWN |
collect.filter_general_messages | bool | Les GeneralMessageRequests seront filtrées par lignes ou arrêts |
generalMessageRequest.version2.2 | bool | Utilise la version 2.2 des GeneralMessageRequests SIRI, en requête et en abonnement (dans la pratique, change un namespace dans le XML) |
discovery_interval | duration | Temps entre deux requêtes de StopPointsDiscovery ou LinesDiscovery |
collect.gtfs.ttl | duration | Temps entre deux requêtes de GTFS-RT. Minimum de 30 secondes (valeur par défaut si le paramètre n’est pas défini) |
subscriptions.maximum_resources | int | Limite le nombre maximum de ressources auxquelles on s’abonne dans 1 abonnement SIRI. Un entier négatif ou nul compte comme une absence de paramètre (aucune limite) |
Paramètres de diffusion
Tous les caches de diffusion (uniquement utilisé pour le GTFS-RT pour le moment) ont un minimum de 10 secondes, et une valeur par défaut de 60 secondes.
Nom | Type | Description |
broadcast.subscriptions.persistent | bool | Permet de ne pas supprimer les abonnements de diffusion si le statut du partenaire devient DOWN ou UNKNOWN |
broadcast.siri.stop_monitoring.multiple_subscriptions | bool | Permet d'envoyer une seule NotifyStopMonitoring avec de multiples StopMonitoringDelivery pour chaque abonnement. |
broadcast.siri.stop_monitoring.maximum_resources_per_delivery | int | Définit le nombre maximal total de MonitoredStopVisit & MonitoredStopVisitCancellation dans un StopMonitoringDelivery |
broadcast.recorded_calls.duration | duration | Les notifications et réponses d’EstimatedTimetable contiendront des RecordedCalls pour les StopVisits partis entre maintenant et la durée spécifiée |
broadcast.rewrite_journey_pattern_ref | bool | L’attribut JourneyPatternRef sera réécrit en utilisant le générateur d’identifiant reference_identifier dans la diffusion de StopMonitoring |
broadcast.no_dataframeref_rewriting_from | []string | Liste d’origines (slug de partenaires) pour lesquelles on ne réécrira pas les attributs DestinationRef dans la diffusion de StopMonitoring |
broadcast.no_destinationref_rewriting_from | []string | Liste d’origines (slug de partenaires) pour lesquelles on ne réécrira pas les attributs DestinationRef dans la diffusion de StopMonitoring ou EstimatedTimetable |
broadcast.prefer_referent_stop_areas | bool | Permet d'utiliser l'arrêt référent au lieu de l'arrêt particulier dans les envois d'EstimatedTimetables (quand l'arrêt est diffusable) |
broadcast.situations.internal_tags | []string | Permet de n’envoyer que les situations ayant les tags correspondantes; valable pour les GeneralMesage et les SituationEchange |
ignore_stop_without_line | bool | Ignorer les arrêts sans ligne lors d’une réponse à une requête de StopPointsDiscovery |
broadcast.gzip_gtfs | bool | Zip les réponses aux requêtes de GTFS-RT |
broadcast.gtfs.cache_timeout | duration | Temps que l’on garde en cache les réponses aux requêtes de GTFS-RT (après Marshaling) |
<connector_name>.cache_timeout | duration | Temps que l’on garde le cache des connecteurs qui le supportent : gtfs-rt-trip-updates-broadcaster |