Siri Azure Updater
It is sandbox extension developed by Skånetrafiken that allows OTP to fetch Siri ET & SX messages through Azure Service Bus. IT also OTP to download historical data from en HTTP endpoint on startup.
Contact Info
Skånetrafiken, Sweden
developer.otp@skanetrafiken.se
Documentation
Documentation available here.
Configuration
To enable the SIRI updater you need to add it to the updaters section of the router-config.json.
Siri Azure ET Updater
| Config Parameter | Type | Summary | Req./Opt. | Default Value | Since | 
|---|---|---|---|---|---|
| type = "siri-azure-et-updater" | enum | The type of the updater. | Required | 1.5 | |
| authenticationType | enum | Which authentication type to use | Optional | "sharedaccesskey" | 2.5 | 
| customMidnight | integer | Time on which time breaks into new day. | Optional | 0 | 2.2 | 
| feedId | string | The ID of the feed to apply the updates to. | Optional | 2.2 | |
| fullyQualifiedNamespace | string | Service Bus fully qualified namespace used for authentication. | Optional | 2.5 | |
| fuzzyTripMatching | boolean | Whether to apply fuzzyTripMatching on the updates | Optional | false | 2.2 | 
| servicebus-url | string | Service Bus connection used for authentication. | Optional | 2.2 | |
| topic | string | Service Bus topic to connect to. | Optional | 2.2 | |
| history | object | Configuration for fetching historical data on startup | Optional | 2.2 | |
| fromDateTime | string | Datetime boundary for historical data | Optional | "-P1D" | 2.2 | 
| timeout | integer | Timeout in milliseconds | Optional | 300000 | na | 
| url | string | Endpoint to fetch from | Optional | na | 
Parameter details
authenticationType
Since version: 2.5 ∙ Type: enum ∙ Cardinality: Optional ∙ Default value: "sharedaccesskey" 
Path: /updaters/[11] 
Enum values: sharedaccesskey | federatedidentity
Which authentication type to use
customMidnight
Since version: 2.2 ∙ Type: integer ∙ Cardinality: Optional ∙ Default value: 0 
Path: /updaters/[11] 
Time on which time breaks into new day.
It is common that operating day date breaks a little bit later than midnight so that the switch happens when traffic is at the lowest point. Parameter uses 24-hour format. If the switch happens on 4 am then set this field to 4.
fullyQualifiedNamespace
Since version: 2.5 ∙ Type: string ∙ Cardinality: Optional 
Path: /updaters/[11] 
Service Bus fully qualified namespace used for authentication.
Has to be present for authenticationMethod FederatedIdentity.
servicebus-url
Since version: 2.2 ∙ Type: string ∙ Cardinality: Optional 
Path: /updaters/[11] 
Service Bus connection used for authentication.
Has to be present for authenticationMethod SharedAccessKey. This should be Primary/Secondary connection string from service bus.
Example configuration
// router-config.json
{
  "updaters" : [
    {
      "type" : "siri-azure-et-updater",
      "topic" : "some_topic",
      "authenticationType" : "SharedAccessKey",
      "fullyQualifiedNamespace" : "fully_qualified_namespace",
      "servicebus-url" : "service_bus_url",
      "feedId" : "feed_id",
      "customMidnight" : 4,
      "history" : {
        "url" : "endpoint_url",
        "fromDateTime" : "-P1D",
        "timeout" : 300000
      }
    }
  ]
}
Siri Azure SX Updater
| Config Parameter | Type | Summary | Req./Opt. | Default Value | Since | 
|---|---|---|---|---|---|
| type = "siri-azure-sx-updater" | enum | The type of the updater. | Required | 1.5 | |
| authenticationType | enum | Which authentication type to use | Optional | "sharedaccesskey" | 2.5 | 
| customMidnight | integer | Time on which time breaks into new day. | Optional | 0 | 2.2 | 
| feedId | string | The ID of the feed to apply the updates to. | Optional | 2.2 | |
| fullyQualifiedNamespace | string | Service Bus fully qualified namespace used for authentication. | Optional | 2.5 | |
| fuzzyTripMatching | boolean | Whether to apply fuzzyTripMatching on the updates | Optional | false | 2.2 | 
| servicebus-url | string | Service Bus connection used for authentication. | Optional | 2.2 | |
| topic | string | Service Bus topic to connect to. | Optional | 2.2 | |
| history | object | Configuration for fetching historical data on startup | Optional | 2.2 | |
| fromDateTime | string | Datetime boundary for historical data. | Optional | "-P1D" | 2.2 | 
| timeout | integer | Timeout in milliseconds | Optional | 300000 | na | 
| toDateTime | string | Datetime boundary for historical data. | Optional | "P1D" | 2.2 | 
| url | string | Endpoint to fetch from | Optional | na | 
Parameter details
authenticationType
Since version: 2.5 ∙ Type: enum ∙ Cardinality: Optional ∙ Default value: "sharedaccesskey" 
Path: /updaters/[10] 
Enum values: sharedaccesskey | federatedidentity
Which authentication type to use
customMidnight
Since version: 2.2 ∙ Type: integer ∙ Cardinality: Optional ∙ Default value: 0 
Path: /updaters/[10] 
Time on which time breaks into new day.
It is common that operating day date breaks a little bit later than midnight so that the switch happens when traffic is at the lowest point. Parameter uses 24-hour format. If the switch happens on 4 am then set this field to 4.
fullyQualifiedNamespace
Since version: 2.5 ∙ Type: string ∙ Cardinality: Optional 
Path: /updaters/[10] 
Service Bus fully qualified namespace used for authentication.
Has to be present for authenticationMethod FederatedIdentity.
servicebus-url
Since version: 2.2 ∙ Type: string ∙ Cardinality: Optional 
Path: /updaters/[10] 
Service Bus connection used for authentication.
Has to be present for authenticationMethod SharedAccessKey. This should be Primary/Secondary connection string from service bus.
Example configuration
// router-config.json
{
  "updaters" : [
    {
      "type" : "siri-azure-sx-updater",
      "topic" : "some_topic",
      "servicebus-url" : "service_bus_url",
      "feedId" : "feed_id",
      "customMidnight" : 4,
      "history" : {
        "url" : "endpoint_url",
        "fromDateTime" : "-P1D",
        "toDateTime" : "P1D",
        "timeout" : 300000
      }
    }
  ]
}
Changelog
- Added configuration for turning off stop arrival time match feature.
- Initial version (April 2022)
- Minor changes in logging (November 2022)
- Retry fetch from history endpoint if it failed (February 2023)
- Solve a bug in SiriAzureETUpdater and improve error logging (March 2023)
- Add support with federated identity authentication (February 2024)