Skip to main content

Release History

VersionDate
3.1.002 October 2025
3.0.123 September 2025
3.0.028 August 2025
2.24.023 July 2025
2.23.030 April 2025
2.22.002 April 2025
2.21.021 January 2025
2.20.021 October 2024
2.19.118 June 2024
2.19.007 June 2024
2.18.002 June 2024
2.17.123 May 2024
2.17.020 May 2024
2.16.027 November 2023
2.15.001 May 2023
2.14.008 February 2023
2.13.024 October 2022
2.12.025 August 2022
2.11.117 March 2022
2.11.009 March 2022
2.10.004 March 2022
2.9.023 September 2021
2.8.307 December 2021
2.8.225 November 2021
2.8.124 November 2021
2.8.006 April 2021
2.7.001 February 2021
2.6.013 January 2021
2.5.010 November 2020
2.4.004 September 2020
2.3.018 August 2020
2.2.025 July 2020
2.1.015 June 2020
2.0.211 March 2020
2.0.16 February 2020
2.0.016 December 2019
1.9.030 October 2019
1.8.110 September 2019
1.8.020 August 2019
1.7.14 June 2019
1.7.031 May 2019
1.6.121 January 2019
1.6.021 December 2018
1.5.229 October 2018
1.5.117 September 2018
1.5.05 September 2018
1.4.229 August 2018
1.4.128 August 2018
1.4.024 August 2018
1.3.227 July 2018
1.3.126 April 2018
1.3.020 April 2018
1.2.115 March 2018
1.2.026 Feburary 2018
1.1.030 November 2017
1.0.014 November 2017

[3.1.0]

Breaking Changes

  • Updated schema to fix discrepancies in the v61 upgrade scripts and the schema creation objects. This includes correcting the types of some columns, changing the nullability of some columns and adding missing indexes.
  • The following gRPC fields have been modified to support nulls (they were missed in v1.0.0):
    • Document.createdDateTime
    • Equipment.commissionedDate
    • MeasurementValue.timeStamp
    • RelayInfo.curveSetting
    • RelayInfo.recloseFast
  • /network/api/v1 and /network/graphics/api/v2 have been updated to use the style from the diagram objects as the symbol, rather than applying logic to these styles to conform to our pre-CIM model styles. This change impacts both the tiling engine, and the REST API, so will break our web clients, and any tools relying on these old symbols via the REST API, but provides greater traceability and customisation of symbol types through the EWB ecosystem.
  • Removed the type property from all EquipmentContainer features in the map tiles. This can now be read from the new class feature property.
  • Renamed the type property for OperationalRestriction features to symbol, to be consistent with other feature properties.

New Features

  • Added the following new CIM classes:
    • DateTimeInterval, interval between two date and time points, where the interval includes the start time but excludes end time.
    • ElectronicAddress, electronic address information.
    • TelephoneNumber, telephone number.
  • Added the following new CIM extension classes:
    • ContactDetails, the details required to contact a person or company. These can be accessed/used via a UsagePoint.
    • DirectionalCurrentRelay, a directional current relay is a type of protective relay used in electrical power systems to detect the direction of current flow and operate only when the current exceeds a certain threshold in a specified direction.
  • Added new CIM extension enums:
    • ContactMethodType
    • PolarizingQuantityType
  • New GraphQL lookup query getMapSymbolDetails returns a list of distinct symbols used by the map, optionally filtered by a set of map layers.
  • The vector tiles will now contain the network voltage level for each feature, which can be customised via the new VoltageLevelConfig. See notes.
  • Added new static asset route for serving the map symbols - /network/graphics/map-symbols. The list of available symbols can be found in the getMapSymbolDetails GraphQL query, with switch symbols living in the /open and /closed subdirectories, and operational restrictions having an additional <SYMBOL>_POINTER file available. Only .svg versions of the files will be served, which should all have square viewports to prevent distortion in when rendered in the map. The symbol files are case-insensitive, with non-exact matches taking the first available case-insensitive match.
  • The following new configuration options are available:
    • http.mapSymbolsPath - controls the path for the map-symbols static assets route. Defaults to <http.webroot>/images/map-symbols.
    • voltageLevel - the options for controlling which items are added to which network voltage levels in the mapbox vector tiles. See docs for details.

Enhancements

  • The GraphQL getSupplyingTransformerQuery has been updated to support usage points attached directly to a PowerTransformer (or anything other than an EnergyConsumer), and to work on LV networks that don't have an LvFeeder. These features were missed in the port from the old REST equivalent.
  • Agreement now supports validityInterval, the date and time interval the agreement is valid (from going into effect to termination).
  • StreetDetail now supports extension buildingNumber, the number of the building.
  • TownDetail now supports country, the name of the country.
  • Added the following feature properties to the map tiles:
    • class for each IdentifiedObject.
    • function for each PowerTransformer.

Fixes

  • Fixed a bug in the LV feeder assignment when processing sites in the current state of the network. This prevented LV feeders on switches (rather than the transformer) from being assigned to the current state energising feeder.
  • A UsagePoint (and therefore its CPI) that is directly connected to a PowerTransformer with no downstream network is again correctly processed by the nmi-transformers-feeders api. This has been a bug since v2.22.0.
  • Asking for energising or energised containers to be included via gRPC will now correctly use the current state when requested.

Notes

  • Updated to use database schema v63.
  • Each feature will attempt to calculate its network voltage level with the following rules:
    • In all cases where the level can't be determined, the isVoltageLevelUnknown flag will be set.
    • EquipmentContainer will be based on the type of container, without checking the equipment inside the container:
      • Substation and Circuit will set the isVoltageLevelEhv flag.
      • Feeder will set the isVoltageLevelHv flag.
      • LvFeeder will set the isVoltageLevelLv flag.
      • All other containers will not set a level.
    • Equipment will be based on its containers, with the following falling back rules based on the type of equipment:
      • ConductingEquipment will check if there is a base voltage value that can be used. Ranges are controlled by configuration.
      • PowerElectronicsUnit will check if its PowerElectronicsConnection has a level that can be used.
      • ProtectionRelaySystem will check if any of the switches it is protecting has a level can be used.
      • AuxiliaryEquipment will check if the referenced Terminal, or any of those connected to it, has a ConductingEquipment that has a level that can be used.
    • OperationalRestriction will use the levels of all referenced Equipment.
    • Pole will match its classification against configuration.
    • Meter will use the levels of all referenced Equipment via any UsagePoint.
  • Updated to ewb-network-routes v3.1.0, and com.zepben.commons plus com.zepben.ewb to v1.1.0.

[3.0.1]

Breaking Changes

  • None.

New Features

  • None.

Enhancements

  • The GraphQL getSupplyingTransformerQuery has been updated to support usage points attached directly to a PowerTransformer (or anything other than an EnergyConsumer), and to work on LV networks that don't have an LvFeeder. These features were missed in the port from the old REST equivalent.

Fixes

  • Fixed a bug in the LV feeder assignment when processing sites in the current state of the network. This prevented LV feeders on switches (rather than the transformer) from being assigned to the current state energising feeder.
  • A UsagePoint (and therefore its CPI) that is directly connected to a PowerTransformer with no downstream network is again correctly processed by the nmi-transformers-feeders api. This has been a bug since v2.22.0.
  • Asking for energising or energised containers to be included via gRPC will now correctly use the current state when requested.

Notes

  • None.

[3.0.0]

Breaking Changes

IMPORTANT This version has underlying protocol breaking changes making it only compatible with SDK 1.0.0 onwards. Older versions of the SDK will not work with this version.

  • Renamed the following enum values:
    • PowerDirectionKind.UNKNOWN_DIRECTION -> PowerDirectionKind.UNKNOWN
    • RegulatingControlModeKind.UNKNOWN_CONTROL_MODE -> RegulatingControlModeKind.UNKNOWN
    • TransformerCoolingType.UNKNOWN_COOLING_TYPE -> TransformerCoolingType.UNKNOWN
    • WindingConnection.UNKNOWN_WINDING -> WindingConnection.UNKNOWN
  • Added TransformerFunctionKind.UNKNOWN to allow distinction between an unknown function, and a function that is not covered by the enum (i.e. other).
  • Breaking changes to some of the gRPC response objects. More details on this are included in the SDK you use to interact with the gRPC services.
  • Fetching load for meters not attached to any UsagePoint with CPI is no longer supported.
  • The following CIM fields have been made nullable. Note if previously accessing these fields you will now have to handle them potentially being null. This will be reflected for most fields in any GraphQL, REST, and map tile APIs.
    • Analog.positiveFlowIn
    • Document.*
    • EnergyConsumer.grounded
    • EnergySource.isExternalGrid
    • IdentifiedObject.name
    • IdentifiedObject.description
    • IdentifiedObject.numDiagramObjects
    • Meter.companyMeterId
    • NameType.description
    • Pole.classification
    • PowerSystemResource.numControls
    • RegulatingCondEq.controlEnabled
    • ShuntCompensator.grounded
    • StreetAddress.postalCode
    • StreetAddress.poBox
    • StreetDetail.*
    • SynchronousMachine.earthing
    • TapChanger.controlEnabled
    • TransformerEnd.grounded
    • UsagePoint.isVirtual
  • /network/graphics/api/v1 has been removed. Please upgrade to using the v2 routes.
  • TranslatedId.name is now nullable in conjunction with IdentifiedObject.name being nullable.

New Features

  • Added metrics for all current state events, and exposed them through GraphQL:
    • AddCutMetrics
    • AddJumperMetrics
    • RemoveCutMetrics
    • RemoveJumperMetrics
    • SwitchStateMetrics
  • Added branching as an argument to getDownstreamEquipmentTree which will change the backing NetworkTrace to be a non-branching type, guaranteeing equipment is only added to the query results once, default behaviour is as it was before this change.
  • You may now specify an inputDatabase for EWB to fetch normalised DER loadshapes from.

Enhancements

  • Added stopTypes parameter to getUpstreamEquipment GraphQL query that accepts a list of equipment types to stop on.
  • Added types parameter to findUpstreamEquipment GraphQL query that accepts a list of equipment types to find.
  • [DEV-3787] Added debug logging with impact metrics for current state changes.
  • Added branching as an argument to getDownstreamEquipmentTree which will change the backing NetworkTrace to be a non-branching type, guaranteeing equipment is only added to the query results once, default behaviour is as it was before this change.

Fixes

  • Fixed bug that would cause a null pointer exception when processing metrics job sources with a null metadata timestamp.
  • getSupplyingTransformers will now fall back to tracing upstream to a transformer if no Feeder is present on the starting equipment.

Notes

  • Replaced ewb-sdk dependency with zepben commons - no impact but allows usage of commons functionality.
  • Updated to super pom 0.45.0

[2.24.0]

Breaking Changes

  • BacklogConfig has some variable changes.
    • since has been changed to sinceDays and it now takes in an integer to indicate how far back in days to include network state backlogs from the until date.
    • until has been added to the config to indicate the latest network state events to be included as the backlog.
    • verifyCertificates has been added to support disabling certificate verification when connecting to a current state API.

New Features

  • The GraphQL route configuration can now be specified via the graphQlConfig key:
    • maxIdentifiedObjects: The maximum number of identifiedObjects returned by the GraphQL getIdentifiedObjects query (defaults to 100).
    • numWorkerThreads: The number of GraphQL worker threads used to handle GraphQL requests, which aren't shared with non-GraphQL queries (defaults to 4). Previously this all ran on a single thread that was shared with all other API calls.

Enhancements

  • None.

Fixes

  • CurrentStateController will now fail gracefully if it failed to fetch or apply network status backlog on to the network. i.e, it no longer kills the current state service and will allow for future network updates.
  • Phases are now correctly assigned to the LV side of an LV2 transformer that is in parallel with a previously energised LV1 transformer.

Notes

  • None.

Fixes

  • Use updated version of ewb-conn (0.10.1) to properly support issuers ending with a /

Breaking Changes

  • None.

New Features

  • Add new option to debug config - logException which will log the stacktrace when EWB returns an internal server error in the catch all route

Enhancements

  • The debug options logExceptions and logRequests is now enabled by default
  • Added specialNeed to Customer to capture any special needs of the customer, e.g. life support.

Fixes

  • None.

Notes

  • None.

Breaking Changes

  • Updated to JVM SDK version 0.21.0, which introduces the following breaking changes:
    • IdentifiedObject.addName has been refactored to take in a NameType and a String. This is doing the same thing under the hood as previous addName() function, but simplifies the input by lowering the amount of objects that needed to be created prior to adding names. Example usage change: obj.addName(nameType, "name", obj)) or obj.addName(nameType.getOrAddName("name", obj)) becomes obj.addName(nameType, "name")
    • addName()/removeName() related function for both IdentifiedObject and NameType will now also perform the same function on the other object type. i.e. Removing a name from the identified object will remove it from the name type and vice versa. Same interaction is also applied to adding a name.
    • Removed ProtectionEquipment.
    • Change of inheritance: CurrentRelayProtectionEquipment. becomes CurrentRelayProtectionRelayFunction.
    • Removed symmetric relation ProtectionEquipmentProtectedSwitch.
    • Renamed CurrentRelayInfo to RelayInfo.
      • The override assetInfo: RelayInfo? has been moved from CurrentRelay to its new parent class, ProtectionRelayFunction.
      • Renamed RelayInfo.removeDelay to RelayInfo.removeDelayAt. The original method name has been repurposed to remove a delay by its value rather than its index.
    • Reworked values for enumerable type ProtectionKind.
  • The database has been split into three databases:
    1. The existing database containing the network model (*-network-model.sqlite) with classes in the network package.
    2. A new database containing the customer information (*-customers.sqlite) with classes in the customer package.
    3. A new database containing the diagrams (*-diagrams.sqlite) with classes in the diagram package.
  • Renamed the following tables (and their associated indexes):
    • battery_unit to battery_units
    • photo_voltaic_unit to photo_voltaic_units
    • power_electronics_connection to power_electronics_connections
    • power_electronics_connection_phase to power_electronics_connection_phases
    • power_electronics_wind_unit to power_electronics_wind_units
    • transformer_star_impedance to transformer_star_impedances
  • All GraphQL tracing queries have new signatures and response types.
  • The filename of the results cache database has been changed to results-cache from results_cache. Any existing results cache database files will need to be renamed to results-cache to continue to be used.
  • The Azure auth configuration is now using the term EntraID instead, so use 'entraid' in the auth method config.

New Features

  • Metadata can now be retrieved via the GraphQL end point using the getMetadata function.
  • Added getMetadata() gRPCs to *ConsumerService for providing service information to clients.
  • Loading of the customers database can be disabled with the new ewbData.excludeCustomers configuration option.
  • Added new classes and fields to support advanced modelling of protection relays:
    • SeriesCompensator: A series capacitor or reactor or an AC transmission line without charging susceptance.
    • Ground: A point where the system is grounded used for connecting conducting equipment to ground.
    • GroundDisconnector: A manually operated or motor operated mechanical switching device used for isolating a circuit or equipment from ground.
    • ProtectionRelayScheme: A scheme that a group of relay functions implement. For example, typically schemes are primary and secondary, or main and failsafe.
    • ProtectionRelayFunction: A function that a relay implements to protect equipment.
    • ProtectionRelaySystem: A relay system for controlling ProtectedSwitches.
    • RelaySetting: The threshold settings for a given relay.
    • VoltageRelay: A device that detects when the voltage in an AC circuit reaches a preset voltage.
    • DistanceRelay: A protective device used in power systems that measures the impedance of a transmission line to determine the distance to a fault, and initiates circuit breaker tripping to isolate the faulty section and safeguard the power system.
    • RelayInfo.recloseFast: True if recloseDelays are associated with a fast Curve, False otherwise.
    • RegulatingControl.ratedCurrent: The rated current of associated CT in amps for a RegulatingControl.
  • Added configuration option ewbData.previousDaysToSearchForDiagram to control the number of days prior to the date of the network-model database being loaded to search for a diagrams database, if an exact match did not exist.
  • Added configuration option ewbData.previousDaysToSearchForCustomer to control the number of days prior to the date of the network-model database being loaded to search for a customers database, if an exact match did not exist.
  • Loading a network-model database of a specific date can be accomplished with the new ewbData.networkDate configuration option. When provided, ewbData.previousDaysToSearchForNetwork is ignored and EWB will only load a network-model database of that exact date. The behaviour of ewbData.previousDaysToSearchForDiagram and ewbData.previousDaysToSearchForCustomer is unchanged.

Enhancements

  • Added designTemperature and designRating to Conductor to capture limitations in the conductor based on the network design and physical surrounds of the conductor.

Fixes

  • findIdentifiedObjects and /network/api/v1/find APIs now support symbol characters that could either cause no matching results to be found or errors to be returned.
  • Updated to evolve-conn 0.9.0:
    • Correct authorisation for user permissions
    • Fix where permissionsKey set in config was not passed through for HTTP requests

Notes

  • None.

[2.23.0]

Breaking Changes

  • Upgrades to super pom 0.38.0 with the following implications:
    • Latest versions of protobuf and gRPC, which support latest SDK and latest version of Mapbox VectorTile

New Features

  • Data model changes:
    • Added assets relationship to PowerSystemResource
    • Added powerSystemResources relationship to Asset

Enhancements

  • Added totalBatchCount, lastProcessedBatch, and lastProcessedBatchDateTime to GqlCurrentNetworkStatus
  • Added startTime to GqlMetadataResponse to provide the server start time.
  • Upgraded Mapbox VectorTile to version 2.1 (from 1.0).

Fixes

  • The current state processing now correctly removes all clamps when removing a jumper.
  • IsolationTraceDirectional now:
    • Checks the provided isolation points are valid and throws IllegalArgumentException if they are not.
    • Returns consistent results regardless of the order of the provided isolation points set.
  • Correctly remove all clamps on jumper removal
  • Fixes from ewb-sdk-jvm 0.27.0:
    • AssignToFeeders and AssignToLvFeeders will now associate PowerElectronicUnits with their powerElectronicsConnection Feeder/LvFeeder. Likewise, current state processing will now also disassociate PowerElectronicUnits from their Feeder/LvFeeder when they are de-energised.
  • Cuts and jumpers that reference non-unique IDs will now be rejected rather than randomly placed on one object.

Notes

  • None.

Breaking Changes

  • Removed support for RecloseSequences.

New Features

  • Added GraphQl query getDownstreamEquipment() which given an mRID and a network state will perform a downstream trace from the mRID and provide all objects.
  • Added gRPCs:
    • getCustomersForContainer - gets all the Customers associated with Meters on a given EquipmentContainer.
    • getDiagramObjects - gets all DiagramObjects associated with a given mRID.

Enhancements

  • None.

Fixes

  • getUpstreamEquipment() GraphQL query will no longer stop on LvFeeder heads, and will instead exhaustively trace if no stop type/mRID is given.
  • Added content-type header to allowed headers in CORS options call

Notes

  • None.

[2.22.0]

Breaking Changes

  • The configuration auth.defaultApiClaim has been removed requiring HTTP REST endpoints with the read:ewb role/permission when authentication is enabled.
  • Phase inferring has been turned off by default. You can enable it again by settings ewbData.shouldInferPhases to true in your config file.
  • Databases with more than 2 terminals on an AcLineSegment will no longer work. Please generate a new database from an updated migrator.

New Features

  • Added GetSupplyingTransformersQuery to allow finding the transformer that supplies power to any conducting equipment/usage point.
  • Added GetUnknownConnectivityEnergyConsumersQuery to retrieve all the energy consumers that are connected to EquivalentBranches inside an EquipmentContainer.
  • New configuration options have been added for controlling the gRPC authorisation scopes. See gRPC Scopes Config in the documentation.
  • Added support for current state processing using the UpdateNetworkStateClient. See Current State Processing Config in the documentation.
    • Switch states are currently limited to only below the EHV level.
    • There are known issues with the tile rendering of cut/clamp additions and removals.

Enhancements

  • Updated gRPC services to allow GrpcChannelBuilder's initial connectivity test to support permissions on a subset of services.

Fixes

  • Junction mRIDs are now indexed in the ItemMatcher correctly when being filtered out for duplicate names.
  • Fixes from ewb-conn-jvm 0.12.1:
    • JWTAuthenticator will now handle JwkExceptions and return 403 Unauthenticated responses.
    • JWTAuthenticator will now pass through unhandled exceptions to the caller rather than wrapping them in 500 errors. Exceptions now need to be handled by the caller of authenticate().

Notes

  • Updated to use new Tracing API from the SDK. This has no functional change.
  • Improved testing of ItemMatcher to ensure that it can incrementally search for equipment by name, even if there are special characters in the name and search term.

[2.21.0]

Breaking Changes

  • Removed getCurrentEquipmentForFeeder implementation for NetworkConsumerService as its functionality is now incorporated in getEquipmentForContainers.

New Features

  • Add new config auth.verifyCertificates to enable/disable server certificate verification when fetching JWKS from issuers. This option is defaulted to true in line with existing functionality.
  • Added the following new CIM classes:
    • AssetFunction, the function performed by an asset.
    • BatteryControl, a new class which describes behaviour specific to controlling a BatteryUnit.
    • Clamp: A Clamp is a galvanic connection at a line segment where other equipment is connected. A Clamp does not cut the line segment. A Clamp is ConductingEquipment and has one Terminal with an associated ConnectivityNode. Any other ConductingEquipment can be connected to the Clamp ConnectivityNode. NOT CURRENTLY FULLY SUPPORTED BY TRACING
    • ControlledAppliance, a new class representing the identity of the appliance controlled by a specific EndDeviceFunction.
    • Cut: A cut separates a line segment into two parts. The cut appears as a switch inserted between these two parts and connects them together. As the cut is normally open there is no galvanic connection between the two line segment parts. But it is possible to close the cut to get galvanic connection. The cut terminals are oriented towards the line segment terminals with the same sequence number. Hence the cut terminal with sequence number equal to 1 is oriented to the line segment's terminal with sequence number equal to 1. The cut terminals also act as connection points for jumpers and other equipment, e.g. a mobile generator. To enable this, connectivity nodes are placed at the cut terminals. Once the connectivity nodes are in place any conducting equipment can be connected at them. NOT CURRENTLY FULLY SUPPORTED BY TRACING
    • EndDeviceFunction, the function performed by an end device such as a meter, communication equipment, controllers, etc.
    • PanDemandResponseFunction, a new class which contains EndDeviceFunctionKind and the identity of the ControlledAppliance of this function.
    • PerLengthPhaseImpedance, a new class used for representing the impedance of individual wires on an AcLineSegment.
    • PhaseImpedanceData, a data class with a link to PerLengthPhaseImpedance, for capturing the phase impedance data of an individual wire.
    • StaticVarCompensator, a new class representing a facility for providing variable and controllable shunt reactive power.
  • Added new enums:
    • BatteryControlMode
    • EndDeviceFunctionKind
    • SVCControlMode
  • Added support for Azure Blob Storage as a source storage option for databases. To enable this, specify the optional configuration keys: ewbData.azureStorageAccountName and ewbData.azureStorageContainerName. The Default credentials provider chain is used as authentication mechanism.
  • Added support for current state tiles. This has been implemented as v2 of the mvt/geo-view route with the following new end points, containing only information about the requested state of the network (e.g. both the normal and current tiles will use open for either the normally open or currently open state of switches):
    • /ewb/network/graphics/api/v2/mvt/geo-view/normal/{z}/{x}/{y}
    • /ewb/network/graphics/api/v2/mvt/geo-view/current/{z}/{x}/{y}
    • /ewb/network/graphics/api/v2/mvt/geo-view/public/normal/{z}/{x}/{y}
  • Added normalAdjacentFeeders() and currentAdjacentFeeders() to Gql responses for Feeder to allow looking up Feeders separated by an open switch.
  • Added normalAdjacentLvFeeders() and currentAdjacentLvFeeders() to Gql responses for LvFeeder to allow looking up LvFeeders separated by an open switch.

Enhancements

  • Added ctPrimary and minTargetDeadband to RegulatingControl.
  • Added collection of BatteryControl to BatteryUnit
  • Added collection of EndDeviceFunctionKind to EndDevice
  • Added an unordered collection comparator.
  • Updated NetworkConsumerService.getEquipmentForContainers to allow requesting normal, current or all equipments.

Fixes

  • Fixed issue with configuration parsing where string to int coercion was not working correctly.
  • Fixed broken aws sdk authentication by adding missing dependency.

Notes

  • Bumped Vert.x to 4.5.11
  • Cut and Clamp have been added to the model, but no processing for them has been added to the tracing, so results will not be what you expect.

[2.20.0]

Breaking Changes

  • The default switch name pattern has changed FROM "^([0-9]{4,})[ ].*$" to null. By default, switch names will not be rendered on the map unless switchNamePattern is configured. You should set it to this pattern if you relied on the old behaviour and could see switch numbers on the map.
  • Removed Auth.permissionsKey configuration option. EWB will attempt to retrieve permissions claims from either permissions or roles fields, with permissions taking precedence.
  • Removed Auth.issuer configuration option. JWT issuers trusted by EWB are now provided as a list of URLs to Auth.trustedIssuers. (Note: URLs must now include protocol)
  • Added Auth.trustedIssuers configuration option. This expects a list of issuer domains to be trusted by EWB. Only the first domain in the list will be returned to clients requesting auth configuration from the /config/auth endpoint.
  • Added support for trusting JWT tokens from multiple issuers. (Note: When clients request client auth configuration from the /config/auth end point, EWB will return only the first issuer in the Auth.trustedIssuers list.)
  • Switch.ratedCurrent has been converted to a double (used to be an integer). Type safe languages will need to be updated to support floating point arithmetic/syntax.
  • The routeFactory for AuthConfigRoute now only takes in availableRoute, audience, issuer, and authType.
  • Refactored EwbDataFilePaths:
    • The EwbDataFilePaths class has been refactored into an interface to enhance flexibility and abstraction.
    • A new class, LocalEwbDataFilePaths, has been introduced to specifically handle the resolution of database paths for the local file system.
  • The s0 (suppress-zero-length) command line option has been relocated to the configuration file under debug.suppressZeroLength.
  • All previously deprecated configuration parameters are no longer supported.
  • The log messages for invalid configuration options have changed, and message about default values have been removed.
  • Removed obsolete gRPC SwitchStateService which only logged the functionality was not implemented. This will be replaced in a future release.

New Features

  • Switch name pattern for inclusion in map tiles is now configurable via geoViewConfig.switchNamePattern.
  • Added support for trusting JWT tokens from multiple issuers. (Note: When clients request client auth configuration from the /config/auth endpoint, EWB will return only the first issuer in the Auth.trustedIssuers list.)
  • GraphQl trace queries now include a polygon field in their response types. This field contains a convex polygon encompassing the locations(if available) of the IdentifiedObject's returned in the response.
  • Added support for an optional second "public" map tile endpoint at /ewb/network/graphics/api/v1/mvt/geo-view/public/:z/:x/:y. This "public" map tile endpoint is enabled by supplying a second geoViewConfig as publicGeoView in the configuration file and can be configured completely independently of the existing map tile endpoint.
  • Added GraphQL query getPublicGeoViewConfig to retrieve the geoViewConfig of the "public" map tile endpoint. If the "public" endpoint is not enabled NULL is returned.
  • Added support for AWS S3 as a source storage option for databases. To enable this, specify the optional configuration keys: ewbData.awsRegion and ewbData.awsBucket. The Default credentials provider chain is used as authentication mechanism.
  • Added phaseCode field to the UsagePoint and GqlUsagePoint classes. This field contains the phases supported by this UsagePoint.

Enhancements

  • Failure to load the configuration file is no longer ignored and a correct error is logged.
  • Added log message when EWB is loading a fixed/locked network date.
  • Following CIM classes are now supported:
    • Curve
    • CurveData
    • EarthFaultCompensator
    • GroundingImpedance
    • PetersenCoil
    • ReactiveCapabilityCurve
    • RotatingMachine
    • SynchronousMachine
  • Added the following Gql classes to support data model change:
    • GqlCurve
    • GqlEarthFaultCompensator
    • GqlGroundingImpedance
    • GqlPetersenCoil
    • GqlReactiveCapabilityCurve
    • GqlRotatingMachine
    • GqlSynchronousMachine

Fixes

  • Use updated version of ewb-conn (0.11.0) to properly support issuers ending with a /.
  • Fixed issue causing authentication to not be applied to some API endpoints when configured.
  • The gRPC shutdown no longer throws an exception when the server fails to load the application cache.

Notes

  • Upgraded to support ewb-sdk-jvm 0.23.0

[2.19.1]

Fixes

  • Use updated version of ewb-conn (0.10.1) to properly support issuers ending with a /

[2.19.0]

Breaking Changes

  • Auth configuration has now been simplified; for EntraID or Auth0; use the following fields (consult the docs if needed):
    • authType (use "entraid" or "auth0" accordingly)
    • issuer (the url for the token provider)
    • audience
    • permissions

New Features

  • Added /ewb/api/graphql/customers GraphQL endpoint for querying data held by the CustomerService. This is a separate endpoint which requires specific authorisation for accessing customer data.
    • This endpoint only implements queries getIdentifiedObject, getIdentifiedObjects, findIdentifiedObjects, findIdentifiedObjectsByName, and getMetadata.
  • Added bounding boxes to GraphQL responses. A BoundingBox will now be returned as part of a GQL query which plots a bounding rectangle encapsulating the IdentifiedObjects contained within the result of the query.

Enhancements

  • None.

Fixes

  • None.

Notes

  • None.

[2.18.0]

Breaking Changes

  • None.

New Features

  • Add new option to debug config - logException which will log the stacktrace when EWB returns an internal server error in the catch all route

Enhancements

  • The debug options logExceptions and logRequests is now enabled by default
  • Added specialNeed to Customer to capture any special needs of the customer, e.g. life support.

Fixes

  • None.

Notes

  • None.

[2.17.1]

Fixes

  • Fixed an error where designTemperature and designRating fields were throwing a MethodNotFound exception when selected via a GraphQL query.

[2.17.0]

Breaking Changes

  • Updated to JVM SDK version 0.21.0, which introduces the following breaking changes:
    • IdentifiedObject.addName has been refactored to take in a NameType and a String. This is doing the same thing under the hood as previous addName() function, but simplifies the input by lowering the amount of objects that needed to be created prior to adding names. Example usage change: obj.addName(nameType, "name", obj)) or obj.addName(nameType.getOrAddName("name", obj)) becomes obj.addName(nameType, "name")
    • addName()/removeName() related function for both IdentifiedObject and NameType will now also perform the same function on the other object type. i.e. Removing a name from the identified object will remove it from the name type and vice versa. Same interaction is also applied to adding a name.
    • Removed ProtectionEquipment.
    • Change of inheritance: CurrentRelayProtectionEquipment. becomes CurrentRelayProtectionRelayFunction.
    • Removed symmetric relation ProtectionEquipmentProtectedSwitch.
    • Renamed CurrentRelayInfo to RelayInfo.
      • The override assetInfo: RelayInfo? has been moved from CurrentRelay to its new parent class, ProtectionRelayFunction.
      • Renamed RelayInfo.removeDelay to RelayInfo.removeDelayAt. The original method name has been repurposed to remove a delay by its value rather than its index.
    • Reworked values for enumerable type ProtectionKind.
  • The database has been split into three databases:
    1. The existing database containing the network model (*-network-model.sqlite) with classes in the network package.
    2. A new database containing the customer information (*-customers.sqlite) with classes in the customer package.
    3. A new database containing the diagrams (*-diagrams.sqlite) with classes in the diagram package.
  • Renamed the following tables (and their associated indexes):
    • battery_unit to battery_units
    • photo_voltaic_unit to photo_voltaic_units
    • power_electronics_connection to power_electronics_connections
    • power_electronics_connection_phase to power_electronics_connection_phases
    • power_electronics_wind_unit to power_electronics_wind_units
    • transformer_star_impedance to transformer_star_impedances
  • All GraphQL tracing queries have new signatures and response types.
  • The filename of the results cache database has been changed to results-cache from results_cache. Any existing results cache database files will need to be renamed to results-cache to continue to be used.
  • The Azure auth configuration is now using the term EntraID instead, so use 'entraid' in the auth method config.

New Features

  • Metadata can now be retrieved via the GraphQL end point using the getMetadata function.
  • Added getMetadata() gRPCs to *ConsumerService for providing service information to clients.
  • Loading of the customers database can be disabled with the new ewbData.excludeCustomers configuration option.
  • Added new classes and fields to support advanced modelling of protection relays:
    • SeriesCompensator: A series capacitor or reactor or an AC transmission line without charging susceptance.
    • Ground: A point where the system is grounded used for connecting conducting equipment to ground.
    • GroundDisconnector: A manually operated or motor operated mechanical switching device used for isolating a circuit or equipment from ground.
    • ProtectionRelayScheme: A scheme that a group of relay functions implement. For example, typically schemes are primary and secondary, or main and failsafe.
    • ProtectionRelayFunction: A function that a relay implements to protect equipment.
    • ProtectionRelaySystem: A relay system for controlling ProtectedSwitches.
    • RelaySetting: The threshold settings for a given relay.
    • VoltageRelay: A device that detects when the voltage in an AC circuit reaches a preset voltage.
    • DistanceRelay: A protective device used in power systems that measures the impedance of a transmission line to determine the distance to a fault, and initiates circuit breaker tripping to isolate the faulty section and safeguard the power system.
    • RelayInfo.recloseFast: True if recloseDelays are associated with a fast Curve, False otherwise.
    • RegulatingControl.ratedCurrent: The rated current of associated CT in amps for a RegulatingControl.
  • Added configuration option ewbData.previousDaysToSearchForDiagram to control the number of days prior to the date of the network-model database being loaded to search for a diagrams database, if an exact match did not exist.
  • Added configuration option ewbData.previousDaysToSearchForCustomer to control the number of days prior to the date of the network-model database being loaded to search for a customers database, if an exact match did not exist.
  • Loading a network-model database of a specific date can be accomplished with the new ewbData.networkDate configuration option. When provided, ewbData.previousDaysToSearchForNetwork is ignored and EWB will only load a network-model database of that exact date. The behaviour of ewbData.previousDaysToSearchForDiagram and ewbData.previousDaysToSearchForCustomer is unchanged.

Enhancements

  • Added designTemperature and designRating to Conductor to capture limitations in the conductor based on the network design and physical surrounds of the conductor.

Fixes

  • findIdentifiedObjects and /network/api/v1/find APIs now support symbol characters that could either cause no matching results to be found or errors to be returned.
  • Updated to evolve-conn 0.9.0:
    • Correct authorisation for user permissions
    • Fix where permissionsKey set in config was not passed through for HTTP requests

Notes

  • None.

[2.16.0]

Breaking Changes

  • Updated to latest JVM SDK - see release notes in version 0.16.0.

New Features

  • Updated to latest ewb-network-routes - see release notes in version 2.16.0.
    • Notables:
      • IsolationTrace now supports undirected network (sub-trans), as long as you provide equipment insideIsolation.
  • Geo view tile caching can now be configured (memory and disk). See configuration docs for details.
  • GeoViewConfig is now exposed through GraphQL getGeoViewConfig()
  • ItemMatcher now backed by Apache Lucene. See ewb-network-routes changelog for details.
  • Added support for Azure as an Auth provider. See docs for configuration instructions.
  • Added option allowAllPermissions which will effectively disable authorisation and allow full access to all endpoints.

Enhancements

  • Docusaurus config and versions update.

Fixes

  • None.

Notes

  • None.

[2.15.0]

Breaking Changes

  • Removed support for RecloseSequences.

New Features

  • Added GraphQl query getDownstreamEquipment() which given an mRID and a network state will perform a downstream trace from the mRID and provide all objects.
  • Added gRPCs:
    • getCustomersForContainer - gets all the Customers associated with Meters on a given EquipmentContainer.
    • getDiagramObjects - gets all DiagramObjects associated with a given mRID.

Enhancements

  • None.

Fixes

  • getUpstreamEquipment() GraphQL query will no longer stop on LvFeeder heads, and will instead exhaustively trace if no stop type/mRID is given.
  • Added content-type header to allowed headers in CORS options call

Notes

  • None.

[2.14.0]

Breaking Changes

  • None.

New Features

  • Added support for version 0.14.0 of the Evolve SDK. This includes support for the following CIM types:
    • CurrentTransformer
    • CurrentTransformerInfo
    • PotentialTransformer
    • PotentialTransformerInfo
    • ProtectionEquipment
    • CurrentRelay
    • CurrentRelayInfo
    • SwitchInfo
    • RecloseSequence
  • Added support for version 2.14.0 of ewb-network-routes.
  • The evolve-sdk now includes an EquivalentNetworkUtils class to add equivalent networks at the edge of equipment containers.

Enhancements

  • Added the following properties to the Mapbox vector tiles:
    • a partially off supply flag for equipment that is only partially energised.
    • a flag to indicate if something is a switch, allowing detection of switches with invalid/missing symbols.
  • Add container mRIDs to equipment in vector tiles features.
  • normalPhases and currentPhases (traced phases) are now exposed through GqlTerminal

Fixes

  • From SDK 0.14.0: Fixed limited connected traces with maximumSteps = 1 were including equipment 2 steps away. This will be reflected in getConnectedEquipment GraphQL queries.
  • Fixes issue in the evolve-sdk where the AuxiliaryEquipment and ProtectionEquipment was not getting properly assigned by the AssignToFeeder class.

Notes

  • None.

v2.13.0

Breaking Changes
  • Database versions prior to v43 are no longer supported.
  • Feeder instances are now only assigned to HV/MV equipment. LvFeeder instances are assigned to LV equipment.
    • The REST API call feeder-assets has been made backwards compatible by including equipment in LV feeders energized by the specified HV/MV feeder.
  • The GraphQL Equipment.currentFeeders field has been replaced with Equipment.currentContainers, which takes an optional list of CIM type names to filter the collection. If you wish to keep your GraphQL requests backwards compatible, you can use the following to return only the current feeders in the previous field:
// old:
currentFeeders {
<field selectors>
}

// equivalent:
currentFeeders: currentContainers(types: ["Feeder"]) {
... on Feeder {
<field selectors>
}
}
New Features
  • Added support for YYN single phase transformers when setting phases.

  • Added LvFeeder, a branch of LV network starting at a distribution substation and continuing until the end of the LV network.

  • Added the following GraphQL queries:

    • getUpstreamEquipment(): Performs an upstream trace, configurably stopping on either a particular type or a certain mRID, or the feeder head if neither were found.
    • getNetworkHierarchy(): Retrieve the network hierarchy classes.
    • getIsolatedEquipment(): Request the equipment that belongs to an isolation area.
  • Added support for the following optional arguments in the gRPC function getEquipmentForContainers:

    • includeEnergizingContainers: Specifies whether to include equipment from containers energizing the ones listed in mRIDs. This is of the enum type IncludedEnergizingContainers, which has three possible values:
      • EXCLUDE_ENERGIZING_CONTAINERS: No additional effect (default).
      • INCLUDE_ENERGIZING_FEEDERS: Include HV/MV feeders that power LV feeders listed in mRIDs.
      • INCLUDE_ENERGIZING_SUBSTATIONS: In addition to INCLUDE_ENERGIZING_FEEDERS, include substations that energize a HV/MV feeder listed in mRIDs or included via INCLUDE_ENERGIZING_FEEDERS.
    • includeEnergizedContainers: Specifies whether to include equipment from containers energized by the ones listed in mRIDs. This is of the enum type IncludedEnergizedContainers, which has three possible values:
      • EXCLUDE_ENERGIZED_CONTAINERS: No additional effect (default).
      • INCLUDE_ENERGIZED_FEEDERS: Include HV/MV feeders powered by substations listed in mRIDs.
      • INCLUDE_ENERGIZED_LV_FEEDERS: In addition to INCLUDE_ENERGIZED_FEEDERS, include LV feeders that are energizes by a HV/MV feeder listed in mRIDs or included via INCLUDE_ENERGIZED_FEEDERS.
  • Added an isSwer flag to the Mapbox vector tiles, indicating if a feature is part of the SWER network.

Enhancements
  • You can now suppress warnings about zero length energy profiles with the -s0 or --suppress-zero-length command line option.
  • Added seriesName attribute to the load profile REST API responses. This is calculated from the requested objects, and will defer to a transformer if the requested object is an LV aggregation usage point.
Fixes
  • You can now correctly request load for a Meter.
Notes
  • None.

v2.12.0

Breaking Changes
  • The mapbox vector tile route now correctly sends a NO_CONTENT [204] response for empty tiles instead of the previous OK [200] response.
  • BusbarSection instances are now rendered by the Mapbox vector tiling engine as lines on a new busbars layer, rather than as points on the nodes layer.
New Features
  • Phases are now set through transformers allowing for phase changes. Only valid phase mappings are currently supported. If a valid mapping has been missed, please contact Zepben.
  • Diagram and DiagramObject instances are now accessible through the GraphQL API.
  • Added the following GraphQL queries:
    • getAssetInfo: Returns all AssetInfo and PerLengthLineParameter objects that match the requested types.
    • getDownstreamEquipmentTree: Performs a downstream trace and return the paths found.
    • findUpstreamEquipment: Performs an upstream trace looking for objects of a particular type.
    • findIdentifiedObjectsByName: Find multiple objects by their name and NMI nametype.
    • getConnectedEquipment: Performs a trace outwards from a selected object for a set number of steps, and optionally, only in a specified direction.
Enhancements
  • GRPC server now compresses responses, reducing network latency.
  • Added more decimal places for impedance values in the REST API.
Fixes
  • The connectionPointIdentifier setting is now correctly passed to the network API.
  • SetPhases no longer removes phases when there is an LV loop with mixed single and 3-phase.
Notes
  • Sequence impedance values through the asset API are now 9 decimal places.

v2.11.1

Fixes
  • The connectionPointIdentifier setting is now correctly passed to the network API.

v2.11.0

No changes - test release


Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • The connectionPointIdentifier setting is now correctly passed to the network API.
Notes
  • None.

v2.10.0

Breaking Changes
  • NMI and load aggregation processing has been updated for semantic relocation in the CIM model.
  • PowerTransformer instances are now distinguished using their function rather than an associated DiagramObject.
  • Updated isPrimary flag in old JSON API's to reference isExternalGrid rather than an EnergySource having any associated EnergySourcePhase.
  • Feeder API's that return infeeds will now return the head of the feeder rather than the external grid source.
  • Renamed PhaseDirection to FeederDirection:
    • IN renamed to UPSTREAM
    • OUT renamed to DOWNSTREAM
  • Separated feeder direction from phase.
    • Direction has been removed from TracedPhases and is now accessed directly off the Terminal.
    • Direction has been removed from PhaseStatus and is now accessed via DirectionStatus.
  • The following Terminal fields are now Kotlin properties rather than accessor functions:
    • connectivityNodeId
    • isConnected
    • normalPhases
    • currentPhases
  • PhaseCode.singlePhases is now a Kotlin read-only property rather than an accessor function.
New Features
  • The connection point identifier is now configurable via the config file option connectionPointIdentifier. Defaults to NMI if not specified.
  • PowerTransformer now has a function and constructionKind.
Enhancements
  • Updated GQL filtering mechanism to allow more precise matching of objects.
  • Expanded the number of fields available for a StreetAddress
  • Added fields to EnergySource to allow representation of a higher-level power grid connection modelled as a slack bus.
  • Reworked phase connectivity to better handle unknown primary phases (X/Y).
Fixes
  • JASNI startup exception has been resolved.
  • nmis-transformers-feeders API now correctly populates feeders for NMIs / usage points that have no upstream transformer on the feeder.
  • Relaxed the constraint on power_electronics_connection_mrid (no longer unique) in the following tables:
    • battery_unit
    • photo_voltaic_unit
    • power_electronics_wind_unit
    • power_electronics_connection_phase
Notes
  • None.

v2.9.0

Breaking Changes
  • All classes will now send their class name via the REST API rather than BasicNode if they did not exist in the old network model.
  • ID correlations are no longer used. Equivalent functionality has been introduced into the CIM.
  • The network hierarchy gRPC API has been updated to use CIM classes.
  • Changed DiagramObject.style to be a string and removed DiagramObjectStyle enum.
  • Updated to use v0.15.0 gRPC protocols.
New Features
  • Preview of a GraphQL API to query the model using via CIM terminology. Try at: /ewb/api/graphql
  • The gRPC API now supports the following CIM classes:
    • EquivalentBranch
    • NoLoadTest
    • OpenCircuitTest
    • ShortCircuitTest
    • ShuntCompensatorInfo
  • Added isVirtual and connectionCategory to `UsagePoint
Enhancements
  • The GraphQL API is in preview while we understand the usefulness and limitations. In practice this means:
    • Existing fields returned in CIM based objects are unlikely to be modified as they conform to our profile, however their nullability may change.
    • Query parameters may have their optionality changed, or their meaning modified.
    • Operations that are added will have their usefulness assessed and may be modified or removed before stabilising.
Fixes
  • Conductor colouring has been corrected in the graphics routes.
  • Switch states have been corrected in the graphics routes.
  • gRPC calls no longer send incomplete objects when items are not found.
Notes
  • None.

v2.8.3

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • nmis-transformers-feeders API now returns correct feeders for NMIs that have no upstream transformers.
Notes
  • None.

v2.8.2

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • nmis-transformers-feeders API now maps supplyPointIds to EnergyConsumers as well as UsagePoints.
Notes
  • None.

v2.8.1

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • nmis-transformers-feeders API now correctly populates feeders for NMIs / usage points that have no upstream transformer on the feeder.
Notes
  • None.

v2.8.0

Breaking Changes

None.

New Features
  • Added support for:

    • BusBarSection
    • LoadBreakSwitch
    • TransformerEndInfo
    • TransformerTankInfo
    • TransformerStarImpedance
  • gRPC service to listen for switch state changes. Note functionality is not implemented yet, the request is just logged.

Enhancements
  • Asset response for equipment now includes location.
  • Added endpoint to request associated transformers and feeders for nmis - /ewb/network/api/v1/nmi-transformers-feeders. See the API documentation for details.
Fixes
  • None.
Notes
  • Updated to Vert.x 3.9.6.

v2.7.0

Breaking Changes
  • The json payload for a PowerTransformer now returns null for values of transformerUtilisation equal to NaN (the json spec doesn't support NaN).
New Features
  • Added power electronic connections and units to the map tile.
Enhancements
  • Added powerTransformerInfo property to the json payload for PowerTransformers.
  • Added the nominalPhases property to the toJson method for terminals.
Fixes
  • None.
Notes
  • None.

v2.6.0

Breaking Changes
  • Changed key name for issuer domain in auth config from issuerDomain -> issuer
New Features
  • Added a new route for retrieving metadata about the network - /ewb/network/api/v1/metadata. See the API documentation for details.
  • Added a new route to get auth config needed for clients - /ewb/auth See the API documentation for details.
Enhancements
  • All files in config dir under webroot is now served for use by the web app.
Fixes
  • Transformer voltage is extracted from the first of the transformer's ends.
Notes
  • None.

v2.5.0

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • None.
Notes
  • None.

v2.4.0

Breaking Changes
  • None.
New Features
  • New assets by location route which allows you to find assets that are associated with a specific location. See API Documentation for details.
  • Added ability to configure at which zoom levels specific objects get added to the vector tiles for visualisation on the map. Refer to the geoView configuration section of the documentation for more information.
Enhancements
  • None.
Fixes
  • None.
Notes
  • None.

v2.3.0

Breaking Changes
  • Updated to use CIM based database (v19.0).
New Features
  • Added an upstream trace API that can find upstream assets by their type. See API documentation for details.
Enhancements
  • Meter information is now included in the asset API JSON payload. See API documentation for details.
  • Supply point name is now included in the JSON payload. See API documentation for details.
  • Pole information is now included in the asset API JSON payload. See API documentation for details.
  • Enhanced the find endpoint to allow to filter by object class through the use of a new query parameter (includeClass).
  • Poles have been added to the geo-view mapbox vector tiles.
Fixes
  • Scada readings via date range query now return profiles for intermediate dates with empty readings.
  • EV analysis endpoint now returns expected charging capacity response.
  • Tracing feeders correctly when power transformers have ends instead of a base voltage.
Notes
  • None.

v2.2.0

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • Nominal phase information has been added to the vector tiles for all conducting equipment.
  • Added equipment containers to asset JSON payloads. See API documentation for details.
  • Added EHV classes to the network hierarchy end point. See API documentation for details.
Fixes
  • The load cache now works if the top-level directory is a symlink.
Notes
  • None.

v2.1.0

Breaking Changes
  • Updated to use CIM based database (v14.0).
New Features
  • TLS is now supported for the web server with a PEM key and cert, and optionally a PEM CA chain if client authentication is configured. It can be configured with the http options tlsEnabled, keyPath, certPath, and clientAuth.
  • You can now configure a pass-through for pulling back readings from SCADA via the date range query. See notes for more details.
Enhancements
  • Added REST API port number to the startup log.
  • Added name property to the GeoJSON responses.
  • You can now specify a location on an AC line segment to isolate rather than isolating the entire line when performing an isolation trace. See API documentation for details.
Fixes
  • Feeder tracing will no longer trace through a feeder breaker when the feeder head terminal belongs to the feeder breaker.
Notes
  • There is no upgrade path for the database, it will need to be regenerated from the source system.
  • To retrieve SCADA readings you need to include the optional scada=true query parameter in your request.
  • To configure SCADA you need to add the following options to your EWB configuration:
"scada": {
"host": "<HOSTNAME>",
"port": <PORT_NUMBER>,
"basePath": "<HOSTED_PATH>"
}

v2.0.2

Fixes
  • Map tiles are now correctly displaying the normal state of the network.

v2.0.1

Fixes
  • Now loading correct basic switch symbols.

v2.0.0

Breaking Changes
  • Updated to use database schema version 13.0.
New Features
  • The network model used internally has been refactored to be CIM based. These classes will be exposed via new APIs in a future release, for now the APIs remain unchanged.
Enhancements
  • The mapbox vector tiles now include conductor paths if available.
Fixes
  • None.
Notes
  • None.

v1.9.0

Breaking Changes
  • Updated to use v11.0 network database.
New Features
  • Underground/Overhead conductors are now supported. A flag isUnderground has been added to all JSON payloads that return conductor details.
  • Conductor styling has been added in the Mapbox Vector Tile feature properties. You can use the lineColor, lineWidth and isUnderground properties of conductor features to control the rendering of map layers.
Enhancements
  • A new field rating has been added to all JSON payloads that return transformer details.
Fixes
  • None.
Notes
  • None.

v1.8.1

Fixes
  • HV customer loads are no longer being double counted in some situations.

v1.8.0

New Features
  • Added an isolation trace API that can find all assets within a proposed isolation area.
Enhancements
  • HV supply point assets now include connected meter information like other supply points.
Fixes
  • Phases are now being inferred when the core configuration drops phases.
Notes
  • None.

v1.7.1

Fixes
  • Updated SQLite driver to support JDK 11.
  • Fixed startup process to remove "thread blocked" errors.

v1.7.0

Breaking Changes
  • Updated to use network database v10.0.
New Features
  • You can now terminate to the middle of conductors, not just the ends.
  • You can now filter many of the API responses to reduce payload size.
  • Support for system tags (e.g. GIS) has been added to all network routes that use asset ID's.
Enhancements
  • Feeder start points can now be the feeder circuit breaker, but it will trace the zone if there is one.
  • No longer warning about primary sources on feeders if the primary source is the feeder start point.
  • Routes that return terminals now include the terminals lat/lon.
Fixes
  • Fixed a bug in the load tracing when load was stored against the load ID rather than the ID.
  • Now correctly returning the request ID's in the response for load traces.
Notes
  • The database version upgrade will happen automatically and will create a backup copy of the database. Ensure you have enough disk space before performing this upgrade.

v1.6.1

Fixes
  • Fixed a race condition when accessing disk based load readings from multiple client requests.

v1.6.0

Breaking Changes
  • The energy profiles "find-names" route has been deprecated. You should use the network "find" route instead.
New Features
  • Max demand API's now support multiple date periods in a single request.
  • Feeder tracing will now stop at zone transformers to prevent cross zone leakage when feeder CB's are not correctly identified or are missing.
  • Geographic tiles are now served asynchronously.
Enhancements
  • No longer generating "Response closed" exceptions.
Fixes
  • HTTP body debugging will now create the output file if it does not exist.
Notes
  • None.

v1.5.2

Fixes
  • None.

v1.5.1

Fixes
  • The time boxing for load requests no longer accepts ambiguous midnight values.
  • Fixed ansi colouring for windows machines.

v1.5.0

Breaking Changes
  • None.
New Features
  • Updated the find names criteria to include all assets that are connected rather than those with downstream phasing.
  • Replaced the find names engine to improve performance.
Enhancements
  • None.
Fixes
  • None.
Notes
  • None.

v1.4.2

Fixes
  • Fixed an error in the date boxing of min/max demand load requests.

v1.4.1

Fixes
  • Fixed an error in the time boxing of min/max demand load requests.
  • The includeReadings option now works for the max/min demand queries when providing a single asset.

v1.4.0

Breaking Changes
  • Energy profile API calls which used to specify the to-asset via a path parameter have been changed to specify it as an optional query parameter. See the API documentation for details.
New Features
  • Added new network graphics end points for retrieving the geographic co-ordinates for assets.
Enhancements
  • Performance improvements to the downstream tree trace.
  • Added support to the find names API for finding assets when searching via id even if they are excluded.
  • Excluded more items from the find names API to reduce the amount of unwanted results.
Fixes
  • Fixed path issues with the unadorned profiles page.
Notes
  • None.

v1.3.2

Fixes
  • Time boxed and max/min demand queries now work correctly with 15 minute profiles.

v1.3.1

Fixes
  • Suppressed warnings logged when the client closes a connection before the server has finished responding.

v1.3.0

Breaking Changes
  • None.
New Features
  • None.
Enhancements
  • None.
Fixes
  • Various exceptions were being logged even though they were handled.
Notes
  • None.

v1.2.1

Fixes
  • Added a new static asset route for IE11 support fix.

v1.2.0

Breaking Changes
  • Requires new network database schema.
New Features
  • Added a Weather API.
  • Added a new network API endpoint to request the attached load points for an LV supply point.
Enhancements
  • Load profile autocomplete API now has more refined results.
Fixes
  • Fix where requesting weather could cause an HTTP 500 exception.
  • Fix where load by weather queries would return the wrong results.
  • Fix to the format of the results cache 'key not found' error.
  • Fixes to API endpoints that take bodies.
  • Load profiles with 0 length could cause a crash.
Notes
  • None.

v1.1.0

Breaking Changes
  • Results cache database path no longer needs to be specified in the config file as it now stored in the EWB data directory.
New Features
  • Now logs when the server finishes loading or if it fails to load to the syslog if configured.
Enhancements
  • Results cache database has been moved into the EWB data directory and is no longer manually configured.
  • Server now has more thorough logging when it fails to start.
Fixes
  • Content type HTTP header is now added to the default index page.
  • The current log is now logged to the specified log path instead of just archive logs.
Notes
  • To enable logging important server messages to the syslog, add the required options in the config file. Refer to Load Aggregator config options for more info.