Sprint 106

All our products have been updated on Feb 26, 2024 with the releases associated to this Sprint 106.

Chouette

Manage Contracts

The user can manage Contracts. A Contract is defined by:

  • a name

  • a Company

  • one or several Lines

  • associated codes

Contracts (3).png
Contract associating Company and Lines

Contracts can be managed independently in every Workbench.

This first version will be complete in the future with additional features like validity period, contract type, associated documents, etc.

Import Contracts via GTFS attributions

Chouette provides a way to define Contracts from particular GTFS attributions:

When a GTFS file defines a GTFS attributions with:

  • an Organisation name with matches an existing Chouette Company

  • a GTFS Route matching an existing Chouette Line

  • is_producer with the value 1

  • is_operator/is_authority has no value (or 0)

  • trip_id has no value

All GTFS attributions associated to the same Chouette Company are used to create/update a single Contract in the Workbench, grouping all lines into this contract.

For example, these two GTFS attributions:

attribution_id,route_id,organization_name,is_producer 1,AB,Contract Operator,1 2,BFC,Contract Operator,1

will create or update a Contract associated to a Company “Contract Operator” and two lines.

To import/export Contracts, the NeTEx format will provide a more complete solution

Export Contracts via GTFS attributions

When a Contract exists, the GTFS export creates a GTFS annotation for each Line associated to the Contract with:

  • the Company name as organisation name

  • the Line code as route_id

  • the attribute is_producer with the value 1

To import/export Contracts, the NeTEx format will provide a more complete solution

Specify a Default Company for GTFS import

When the user has a GTFS file with invalid GTFS agency (like files created by some software vendors), he can start a Chouette GTFS import by specifying an existing Company to be used in place of the default GTFS agency:

ac63b38d-bcaa-4a7a-a586-382e77c58aac.png

In this case, all imported GTFS Routes as Chouette Lines are associated to this Company.

Control absence of Vehicle Journeys for disable lines

The user can control that no service is present in a Dataset outside the associated Line validity period:

NB: Lines without validity period are ignored. These lines can be controlled via the dedicated “Model status” Control.

Control code uniqueness

The user can control that a code has a unique value into the given scope:

The user can define:

  • the target model (Stop Area, Company, Line, Document, Entrance, Point Of Interest, Shape)

  • the target code space

  • the uniqueness scope: Provider, Workbench, Workgroup

Retrieve Route Stop Points in GraphQL

The user can retrieve Route Stop Points via a GraphQL like:

{ lines { nodes { registrationNumber routes { nodes { name wayback stopPoints { nodes { position stopArea { name registrationNumber } } } } } } } }

The Chouette GraphQL Publication API will return a JSON payload like:

{ "data": { "lines": { "nodes": [ { "registrationNumber": "AB", "routes": { "nodes": [ { "name": "to Bullfrog", "wayback": "outbound", "stopPoints": { "nodes": [ { "position": 0, "stopArea": { "name": "Nye County Airport (Demo)", "registrationNumber": "BEATTY_AIRPORT" } }, { "position": 1, "stopArea": { "name": "Bullfrog (Demo)", "registrationNumber": "BULLFROG" } } ] } },

This behavior is described into the Chouette API GraphQL - Lines > Routes > Stop Points.

Ara

Update Vehicle occupancy attributes via Partner GraphQL API

The user can add the GraphQL connector (graphql-server) to a Partner. By default, the Partner won't be able to modify the data model.

Via the dedicated setting, the user can open permissions on specific attributes:

By using one of the tokens associated to this Partner, the specified attributes can be modified by mutation GraphQL requests.

By performing GraphQL requests with the required token, on the GraphQL endpoint of the associated referential (for example: https://ara.enroute.mobi/test/graphql), an external software can complete the Ara real-time data model.

For example, to update the current occupancyStatus of a Vehicle:

Multiple mutations can be performed into a single request by using the GraphQL multiple queries mechanism.

The model updates are taken into account instantly. The next requests will broadcast the new values.

Collect Situations with SIRI Situation Exchange subscriptions

The user can use the connector SIRI Situation Exchange Subscription Collector to use SIRI Subscriptions to collect Situations.

Some examples of SIRI Situation Subscription Requests, Responses and Notifications:

Collect Situations by adding internal tags

When the user defines the setting collect.situations.internal_tags with one or several tags (like tag1 or tag1,tag2), all Situations collected via this Partner are created/updated with this list of internal tags.

Broadcast only Situations with specified internal tags

When the user defines the setting broadcast.situations.only_internal_tags with one or several tags (like tag1 or tag1,tag2), only Situation with an internal tag matching this list is broadcast via this Partner.

More flexible update mechanism for SIRI Situations

To provide a more flexible update mechanism than the SIRI Situation Exchange defines (the collected Version must change on every update), Ara updates a Situation when:

  • when the collected RecordedAt is newer than the model value

  • when the collected Version is different from the model value

Ara uses as Situation RecordedAt the following SIRI attributes:

  • PtSituationElement/VersionedAtTime

  • PtSituationElement/CreationTime