Sprint 142

Sprint 142

All our SaaS products have been updated on 02 April 2026 with the releases associated with this Sprint 142.

Chouette

Import messages are improved and organized by resource

Users can see import messages displayed for each resource:

Each resource can be expanded to show the detail of each import message:

Publish by including all Workgroup Stop Areas/Lines

Users can publish by selecting that all stop areas and/or all lines in the Workgroup will be included in the published file. Users can select a dedicated option to ignore disabled models.

  • When a Stop Area or a Line is published, all associated models (Entrances, Booking Arrangements, etc) are published too.

  • When “Ignore disabled Stop Areas” option is enabled, the Stop Areas with disabled status ( deleted_at in the past) are not exported.

  • When “Ignore disabled Lines” option is enabled, the Lines with disabled (deactivated = true) status or active_until in the past are not exported.

Prefer Referent Stop Areas in NeTEx export

The user can enable in a NeTEx export the option “Prefer Referent Stop Areas”.

image-20260421-144359.png

In this case, the particular Stop Areas will be replaced by the associated Referent Stop Area in the NeTEx resources.

Only referent dependencies are exported in this case (referent parents, referent entrances, etc).

Display message when NeTEx Route attributes are invalid

When a NeTEx route doesn’t provide required information to create a Chouette Route, an error should be displayed.

No identifier

<Route id=""/>
  • La Route NeTEx n'a pas d'identifiant

  • The NeTEx Route has no identifier

No Line

<Route id="without-line"/>
  • La Route NeTEx 'without-line' n'a pas de Line

  • The NeTEx Route 'without-line' has no Line

Unknown Line

<Route id="with-unknown-line"> <Name>With unknown Line</Name> <LineRef ref="dummy"/> <DirectionType>wrong</DirectionType> </Route>
  • La Route NeTEx 'with-unknown-line' référence une Line NeTEx 'dummy' inconnue

  • The NeTEx Route 'with-unknown-line' references an unknown NeTEx Line 'dummy'

Invalid DirectionType

<Route id="with-wrong-direction-type"> <Name>With wrong DirectionType</Name> <LineRef ref="line-1"/> <DirectionType>wrong</DirectionType> </Route>
  • La Route NeTEx 'with-wrong-direction-type' utilise une DirectionType 'dummy' non supportée

  • The NeTEx Route 'with-wrong-direction-type' uses an unsupported DirectionType 'dummy'

Unknown Direction

<Route id="with-unknown-direction"> <Name>With unknown Direction</Name> <LineRef ref="line-1"/> <DirectionRef ref="dummy"/> </Route>
  • La Route NeTEx 'with-unknown-direction' référence une Direction 'dummy' inconnue

  • The NeTEx Route 'with-unknown-direction' references an unknown Direction 'dummy'

Display message when NeTEx Journey Pattern attributes are invalid

When a NeTEx Journey Pattern doesn’t provide required information to create a Chouette JourneyPattern, an error should be displayed. Invalid journey patterns are ignored to allow the Route creation.

Display messages when NeTEx Route & Journey Patterns stop sequence is invalid

The user can use the Macro Remove attribute value to reset the Route & Journey Pattern name.

The Macro will replace the current value by the Default value.

Display messages when NeTEx ScheduledStopPoints are incomplete

When the user imports NeTEx ScheduledStopPoints which can be properly associated to a StopArea, an error message is displayed.

Display messages when NeTEx DayTypes are invalid

When the user imports a DayType which doesn’t allow to create a valid Timetable, an error message is created and the DayType is ignored.

Display messages when NeTEx Journeys are invalid

When the user imports NeTEx ServiceJourneys with invalid information, an error message is created and this ServiceJourney is skipped.

Display message when NeTEx Journey Pattern attributes are invalid

When a NeTEx Journey Pattern doesn’t provide required information to create a Chouette JourneyPattern, an error should be displayed. Invalid journey patterns are ignored to allow the Route creation.

Remove Route/JourneyPattern name via Macro

The user can use the Macro Remove attribute value to reset the Route & Journey Pattern name.

The Macro will replace the current value by the Default value. This special value is managed by other Macros.

Route or Journey Pattern creation name macros keep existing values

The Macros Define Route name, Define Direction name, Define Journey Pattern name, and Define destination display name don’t change the attribute anymore when a value already exists. The macro doesn’t overwrite existing values anymore.

However, the value will indeed be changed if it is the default value used by Chouette imports (Default, Inbound, Outbound).

Ara

Include Cancellation attribute in Estimated/Recorded Call in EstimatedTimetable

When a Stop Visit has cancelled, the associated SIRI EstimatedCall broadcasted by Ara contains the Cancellation attribute at true.

Example

<EstimatedCall> <StopPointRef>NINOXE:StopPoint:SP:24:LOC</StopPointRef> <Order>1</Order> <StopPointName>Test</StopPointName> <Cancellation>true</Cancellation> <ExpectedArrivalTime>2017-01-01T15:01:01.000Z</ExpectedArrivalTime> <ArrivalStatus>cancelled</ArrivalStatus> <ExpectedDepartureTime>2017-01-01T15:01:11.000Z</ExpectedDepartureTime> <DepartureStatus>cancelled</DepartureStatus> </EstimatedCall>

 The Cancellation attribute is not present when the Stop Visit is not cancelled.

Enforce GTFS-RT stop sequence

When a Vehicle Journey is published in a GTFS-RT feed, the stop sequence values are recomputed from 0 (and 1 if a dedicated setting broadcast.gtfs.stop_sequence_from_one is present).

With this feature, Ara GTFS-RT TripUpdate feeds use the same stop sequence than Chouette GTFS feeds whatever the SIRI Order / VisitNumber.

Broadcast GTFS-RT TripUpdate with VehicleDescriptor

When a Vehicle is associated to a Vehicle Journey, Ara includes VehicleDescriptor information in each GTFS TripUpdate.

See https://gtfs.org/documentation/realtime/reference/#message-tripupdate

Flamingo

Retrieve Validation message Pagination

Users can retrieve a huge collection of validation messages by using the pagination parameters:

/api/validations/<uuid>/messages # default per_page is applied /api/validations/<uuid>/messages?per_page=1000 /api/validations/<uuid>/messages?page=2&per_page=1000

The maximum per_page value is 10000 messages. If no per_page parameter is specified, the default per_page value of 10000 messages is used.

Validate referenced resource with RuleContext reduce/reference

Users can use a Rule Context reduce/reference to apply rules on the NeTEx resource referenced by the targeted reference.

Example

{ "rule_context": "reduce/reference", "reference": "quay_ref", "rules": [ { "rule": "resource/class", "expected_classes": "Quay" } ] }

will validate this example

<PassengerStopAssignment id="valid"> <ScheduledStopPointRef ref="scheduled-stop-point-1"/> <QuayRef ref="quay-1" /> </PassengerStopAssignment> <Quay id="quay-1"/> <PassengerStopAssignment id="invalid"> <ScheduledStopPointRef ref="scheduled-stop-point-1"/> <QuayRef ref="stop-place-1" /> </PassengerStopAssignment> <StopPlace id="stop-place-1"/> <ScheduledStopPoint id="scheduled-stop-point-1"/>

This rule set:

{ "rule_context": "resource/kind_of", "resource_class": "DayTypeAssignment", "rules": [ { "rule_context": "attribute/present", "name": "operating_period_ref", "rules": [ { "rule_context": "reduce/reference", "reference": "day_type_ref", rules": [ { "rule": "attribute/mandatory", "name": "days_of_week", "criticity": "error", "code": "day_type_days_of_week", "message": "L'attribut PropertyOfDay/DaysOfWeek est obligatoire dans un DayType associée à un OperationPeriod" } ] } ] } ] }

will validate this example:

<DayType id="valid"> <properties> <PropertyOfDay> <DaysOfWeek>Tuesday Friday</DaysOfWeek> </PropertyOfDay> </properties> </DayType> <DayTypeAssignment id="assigment-1"> <OperatingPeriodRef ref="period-1"/> <DayTypeRef ref="valid"/> </DayTypeAssignment> <OperatingPeriod id="period-1"> <FromDate>2030-01-01T00:00:00</FromDate> <ToDate>2030-01-05T00:00:00</ToDate> </OperatingPeriod> <DayType id="invalid"/> <DayTypeAssignment id="assigment-2"> <OperatingPeriodRef ref="period-1"/> <DayTypeRef ref="invalid"/> </DayTypeAssignment>

Filter NeTEx resources with a given attribute present or absent

Users can use the Rule Context attribute/presence to filter only resources where this attribute is present/defined:

{ "rule_context": "resource/kind_of", "resource_class": "DayTypeAssignment", "rules": [ { "rule_context": "attribute/present", "name": "operating_period_ref" "rules": [ { "rule": "attribute/blank", "name": "is_available" } ] } ] }

Users can use the Rule Context attribute/presence to filter only resources where this attribute is absent/undefined:

{ "rule_context": "resource/kind_of", "resource_class": "DayTypeAssignment", "rules": [ { "rule_context": "attribute/absent", "name": "operating_period_ref" "rules": [ { "rule": "attribute/mandatory", "name": "date" } ] } ] }