Release History
| Version | Date |
|---|---|
| 3.1.0 | 02 October 2025 |
| 3.0.1 | 23 September 2025 |
| 3.0.0 | 28 August 2025 |
| 2.24.0 | 23 July 2025 |
| 2.23.0 | 30 April 2025 |
| 2.22.0 | 02 April 2025 |
| 2.21.0 | 21 January 2025 |
| 2.20.0 | 21 October 2024 |
| 2.19.1 | 18 June 2024 |
| 2.19.0 | 07 June 2024 |
| 2.18.0 | 02 June 2024 |
| 2.17.1 | 23 May 2024 |
| 2.17.0 | 20 May 2024 |
| 2.16.0 | 27 November 2023 |
| 2.15.0 | 01 May 2023 |
| 2.14.0 | 08 February 2023 |
| 2.13.0 | 24 October 2022 |
| 2.12.0 | 25 August 2022 |
| 2.11.1 | 17 March 2022 |
| 2.11.0 | 09 March 2022 |
| 2.10.0 | 04 March 2022 |
| 2.9.0 | 23 September 2021 |
| 2.8.3 | 07 December 2021 |
| 2.8.2 | 25 November 2021 |
| 2.8.1 | 24 November 2021 |
| 2.8.0 | 06 April 2021 |
| 2.7.0 | 01 February 2021 |
| 2.6.0 | 13 January 2021 |
| 2.5.0 | 10 November 2020 |
| 2.4.0 | 04 September 2020 |
| 2.3.0 | 18 August 2020 |
| 2.2.0 | 25 July 2020 |
| 2.1.0 | 15 June 2020 |
| 2.0.2 | 11 March 2020 |
| 2.0.1 | 6 February 2020 |
| 2.0.0 | 16 December 2019 |
| 1.9.0 | 30 October 2019 |
| 1.8.1 | 10 September 2019 |
| 1.8.0 | 20 August 2019 |
| 1.7.1 | 4 June 2019 |
| 1.7.0 | 31 May 2019 |
| 1.6.1 | 21 January 2019 |
| 1.6.0 | 21 December 2018 |
| 1.5.2 | 29 October 2018 |
| 1.5.1 | 17 September 2018 |
| 1.5.0 | 5 September 2018 |
| 1.4.2 | 29 August 2018 |
| 1.4.1 | 28 August 2018 |
| 1.4.0 | 24 August 2018 |
| 1.3.2 | 27 July 2018 |
| 1.3.1 | 26 April 2018 |
| 1.3.0 | 20 April 2018 |
| 1.2.1 | 15 March 2018 |
| 1.2.0 | 26 Feburary 2018 |
| 1.1.0 | 30 November 2017 |
| 1.0.0 | 14 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.createdDateTimeEquipment.commissionedDateMeasurementValue.timeStampRelayInfo.curveSettingRelayInfo.recloseFast
/network/api/v1and/network/graphics/api/v2have 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
typeproperty from allEquipmentContainerfeatures in the map tiles. This can now be read from the newclassfeature property. - Renamed the
typeproperty forOperationalRestrictionfeatures tosymbol, 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 aUsagePoint.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:
ContactMethodTypePolarizingQuantityType
- New GraphQL lookup query
getMapSymbolDetailsreturns 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 thegetMapSymbolDetailsGraphQL query, with switch symbols living in the/openand/closedsubdirectories, and operational restrictions having an additional<SYMBOL>_POINTERfile available. Only.svgversions 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 themap-symbolsstatic 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
getSupplyingTransformerQueryhas been updated to support usage points attached directly to aPowerTransformer(or anything other than anEnergyConsumer), and to work on LV networks that don't have anLvFeeder. These features were missed in the port from the old REST equivalent. Agreementnow supportsvalidityInterval, the date and time interval the agreement is valid (from going into effect to termination).StreetDetailnow supports extensionbuildingNumber, the number of the building.TownDetailnow supportscountry, the name of the country.- Added the following feature properties to the map tiles:
classfor eachIdentifiedObject.functionfor eachPowerTransformer.
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 aPowerTransformerwith no downstream network is again correctly processed by thenmi-transformers-feedersapi. This has been a bug sincev2.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
isVoltageLevelUnknownflag will be set. EquipmentContainerwill be based on the type of container, without checking the equipment inside the container:SubstationandCircuitwill set theisVoltageLevelEhvflag.Feederwill set theisVoltageLevelHvflag.LvFeederwill set theisVoltageLevelLvflag.- All other containers will not set a level.
Equipmentwill be based on its containers, with the following falling back rules based on the type of equipment:ConductingEquipmentwill check if there is a base voltage value that can be used. Ranges are controlled by configuration.PowerElectronicsUnitwill check if itsPowerElectronicsConnectionhas a level that can be used.ProtectionRelaySystemwill check if any of the switches it is protecting has a level can be used.AuxiliaryEquipmentwill check if the referencedTerminal, or any of those connected to it, has aConductingEquipmentthat has a level that can be used.
OperationalRestrictionwill use the levels of all referencedEquipment.Polewill match itsclassificationagainst configuration.Meterwill use the levels of all referencedEquipmentvia anyUsagePoint.
- In all cases where the level can't be determined, the
- Updated to
ewb-network-routesv3.1.0, andcom.zepben.commonspluscom.zepben.ewbto v1.1.0.
[3.0.1]
Breaking Changes
- None.
New Features
- None.
Enhancements
- The GraphQL
getSupplyingTransformerQueryhas been updated to support usage points attached directly to aPowerTransformer(or anything other than anEnergyConsumer), and to work on LV networks that don't have anLvFeeder. 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 aPowerTransformerwith no downstream network is again correctly processed by thenmi-transformers-feedersapi. This has been a bug sincev2.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.UNKNOWNRegulatingControlModeKind.UNKNOWN_CONTROL_MODE->RegulatingControlModeKind.UNKNOWNTransformerCoolingType.UNKNOWN_COOLING_TYPE->TransformerCoolingType.UNKNOWNWindingConnection.UNKNOWN_WINDING->WindingConnection.UNKNOWN
- Added
TransformerFunctionKind.UNKNOWNto 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
UsagePointwith 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.positiveFlowInDocument.*EnergyConsumer.groundedEnergySource.isExternalGridIdentifiedObject.nameIdentifiedObject.descriptionIdentifiedObject.numDiagramObjectsMeter.companyMeterIdNameType.descriptionPole.classificationPowerSystemResource.numControlsRegulatingCondEq.controlEnabledShuntCompensator.groundedStreetAddress.postalCodeStreetAddress.poBoxStreetDetail.*SynchronousMachine.earthingTapChanger.controlEnabledTransformerEnd.groundedUsagePoint.isVirtual
/network/graphics/api/v1has been removed. Please upgrade to using the v2 routes.TranslatedId.nameis now nullable in conjunction withIdentifiedObject.namebeing nullable.
New Features
- Added metrics for all current state events, and exposed them through GraphQL:
- AddCutMetrics
- AddJumperMetrics
- RemoveCutMetrics
- RemoveJumperMetrics
- SwitchStateMetrics
- Added
branchingas an argument togetDownstreamEquipmentTreewhich will change the backingNetworkTraceto 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
inputDatabasefor EWB to fetch normalised DER loadshapes from.
Enhancements
- Added
stopTypesparameter togetUpstreamEquipmentGraphQL query that accepts a list of equipment types to stop on. - Added
typesparameter tofindUpstreamEquipmentGraphQL query that accepts a list of equipment types to find. - [DEV-3787] Added debug logging with impact metrics for current state changes.
- Added
branchingas an argument togetDownstreamEquipmentTreewhich will change the backingNetworkTraceto 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.
getSupplyingTransformerswill 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
BacklogConfighas some variable changes.sincehas been changed tosinceDaysand it now takes in an integer to indicate how far back in days to include network state backlogs from the until date.untilhas been added to the config to indicate the latest network state events to be included as the backlog.verifyCertificateshas 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
graphQlConfigkey:maxIdentifiedObjects: The maximum number of identifiedObjects returned by the GraphQLgetIdentifiedObjectsquery (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
CurrentStateControllerwill 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
debugconfig -logExceptionwhich will log the stacktrace when EWB returns an internal server error in the catch all route
Enhancements
- The
debugoptionslogExceptionsandlogRequestsis now enabled by default - Added
specialNeedtoCustomerto 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.addNamehas been refactored to take in aNameTypeand aString. This is doing the same thing under the hood as previousaddName()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))orobj.addName(nameType.getOrAddName("name", obj))becomesobj.addName(nameType, "name")addName()/removeName()related function for bothIdentifiedObjectandNameTypewill 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:
CurrentRelay→ProtectionEquipment. becomesCurrentRelay→ProtectionRelayFunction. - Removed symmetric relation
ProtectionEquipment↔ProtectedSwitch. - Renamed
CurrentRelayInfotoRelayInfo.- The override
assetInfo: RelayInfo?has been moved fromCurrentRelayto its new parent class,ProtectionRelayFunction. - Renamed
RelayInfo.removeDelaytoRelayInfo.removeDelayAt. The original method name has been repurposed to remove a delay by its value rather than its index.
- The override
- Reworked values for enumerable type
ProtectionKind.
- The database has been split into three databases:
- The existing database containing the network model (
*-network-model.sqlite) with classes in thenetworkpackage. - A new database containing the customer information (
*-customers.sqlite) with classes in thecustomerpackage. - A new database containing the diagrams (
*-diagrams.sqlite) with classes in thediagrampackage.
- The existing database containing the network model (
- Renamed the following tables (and their associated indexes):
battery_unittobattery_unitsphoto_voltaic_unittophoto_voltaic_unitspower_electronics_connectiontopower_electronics_connectionspower_electronics_connection_phasetopower_electronics_connection_phasespower_electronics_wind_unittopower_electronics_wind_unitstransformer_star_impedancetotransformer_star_impedances
- All GraphQL tracing queries have new signatures and response types.
- The filename of the
results cachedatabase has been changed toresults-cachefromresults_cache. Any existingresults cachedatabase files will need to be renamed toresults-cacheto continue to be used. - The Azure auth configuration is now using the term
EntraIDinstead, so use 'entraid' in the auth method config.
New Features
- Metadata can now be retrieved via the GraphQL end point using the
getMetadatafunction. - Added
getMetadata()gRPCs to*ConsumerServicefor providing service information to clients. - Loading of the
customersdatabase can be disabled with the newewbData.excludeCustomersconfiguration 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 controllingProtectedSwitches.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.previousDaysToSearchForDiagramto control the number of days prior to the date of thenetwork-modeldatabase being loaded to search for adiagramsdatabase, if an exact match did not exist. - Added configuration option
ewbData.previousDaysToSearchForCustomerto control the number of days prior to the date of thenetwork-modeldatabase being loaded to search for acustomersdatabase, if an exact match did not exist. - Loading a
network-modeldatabase of a specific date can be accomplished with the newewbData.networkDateconfiguration option. When provided,ewbData.previousDaysToSearchForNetworkis ignored and EWB will only load anetwork-modeldatabase of that exact date. The behaviour ofewbData.previousDaysToSearchForDiagramandewbData.previousDaysToSearchForCustomeris unchanged.
Enhancements
- Added
designTemperatureanddesignRatingtoConductorto capture limitations in the conductor based on the network design and physical surrounds of the conductor.
Fixes
findIdentifiedObjectsand/network/api/v1/findAPIs 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
permissionsKeyset 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
assetsrelationship toPowerSystemResource - Added
powerSystemResourcesrelationship toAsset
- Added
Enhancements
- Added
totalBatchCount,lastProcessedBatch, andlastProcessedBatchDateTimetoGqlCurrentNetworkStatus - Added
startTimetoGqlMetadataResponseto 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.
IsolationTraceDirectionalnow:- Checks the provided isolation points are valid and throws
IllegalArgumentExceptionif they are not. - Returns consistent results regardless of the order of the provided isolation points set.
- Checks the provided isolation points are valid and throws
- Correctly remove all clamps on jumper removal
- Fixes from ewb-sdk-jvm 0.27.0:
AssignToFeedersandAssignToLvFeederswill now associatePowerElectronicUnitswith theirpowerElectronicsConnectionFeeder/LvFeeder. Likewise, current state processing will now also disassociatePowerElectronicUnitsfrom theirFeeder/LvFeederwhen 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-typeheader toallowed headersin CORS options call
Notes
- None.
[2.22.0]
Breaking Changes
- The configuration
auth.defaultApiClaimhas been removed requiring HTTP REST endpoints with theread:ewbrole/permission when authentication is enabled. - Phase inferring has been turned off by default. You can enable it again by settings
ewbData.shouldInferPhasestotruein your config file. - Databases with more than 2 terminals on an
AcLineSegmentwill no longer work. Please generate a new database from an updated migrator.
New Features
- Added
GetSupplyingTransformersQueryto allow finding the transformer that supplies power to any conducting equipment/usage point. - Added
GetUnknownConnectivityEnergyConsumersQueryto 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 Configin the documentation. - Added support for current state processing using the
UpdateNetworkStateClient. SeeCurrent State Processing Configin 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
JunctionmRIDs are now indexed in theItemMatchercorrectly 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
getCurrentEquipmentForFeederimplementation forNetworkConsumerServiceas its functionality is now incorporated ingetEquipmentForContainers.
New Features
- Add new config
auth.verifyCertificatesto enable/disable server certificate verification when fetching JWKS from issuers. This option is defaulted totruein 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 aBatteryUnit.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 TRACINGControlledAppliance, a new class representing the identity of the appliance controlled by a specificEndDeviceFunction.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 TRACINGEndDeviceFunction, the function performed by an end device such as a meter, communication equipment, controllers, etc.PanDemandResponseFunction, a new class which containsEndDeviceFunctionKindand the identity of theControlledApplianceof this function.PerLengthPhaseImpedance, a new class used for representing the impedance of individual wires on an AcLineSegment.PhaseImpedanceData, a data class with a link toPerLengthPhaseImpedance, 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:
BatteryControlModeEndDeviceFunctionKindSVCControlMode
- Added support for Azure Blob Storage as a source storage option for databases. To enable this, specify the optional configuration keys:
ewbData.azureStorageAccountNameandewbData.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-viewroute 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 useopenfor 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()andcurrentAdjacentFeeders()to Gql responses forFeederto allow looking up Feeders separated by an open switch. - Added
normalAdjacentLvFeeders()andcurrentAdjacentLvFeeders()to Gql responses forLvFeederto allow looking up LvFeeders separated by an open switch.
Enhancements
- Added
ctPrimaryandminTargetDeadbandtoRegulatingControl. - Added collection of
BatteryControltoBatteryUnit - Added collection of
EndDeviceFunctionKindtoEndDevice - Added an unordered collection comparator.
- Updated
NetworkConsumerService.getEquipmentForContainersto 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
CutandClamphave 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 unlessswitchNamePatternis 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.permissionsKeyconfiguration option. EWB will attempt to retrieve permissions claims from eitherpermissionsorrolesfields, withpermissionstaking precedence. - Removed
Auth.issuerconfiguration option. JWT issuers trusted by EWB are now provided as a list of URLs toAuth.trustedIssuers. (Note: URLs must now include protocol) - Added
Auth.trustedIssuersconfiguration 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/authendpoint. - Added support for trusting JWT tokens from multiple issuers. (Note: When clients request client auth configuration from the
/config/authend point, EWB will return only the first issuer in theAuth.trustedIssuerslist.) Switch.ratedCurrenthas been converted to adouble(used to be aninteger). Type safe languages will need to be updated to support floating point arithmetic/syntax.- The
routeFactoryforAuthConfigRoutenow only takes inavailableRoute,audience,issuer, andauthType. - Refactored
EwbDataFilePaths:- The
EwbDataFilePathsclass 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
- The
s0(suppress-zero-length) command line option has been relocated to the configuration file underdebug.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
SwitchStateServicewhich 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/authendpoint, EWB will return only the first issuer in theAuth.trustedIssuerslist.) - GraphQl trace queries now include a
polygonfield in their response types. This field contains a convex polygon encompassing the locations(if available) of theIdentifiedObject'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 secondgeoViewConfigaspublicGeoViewin the configuration file and can be configured completely independently of the existing map tile endpoint. - Added GraphQL query
getPublicGeoViewConfigto retrieve thegeoViewConfigof 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.awsRegionandewbData.awsBucket. The Default credentials provider chain is used as authentication mechanism. - Added
phaseCodefield to theUsagePointandGqlUsagePointclasses. This field contains the phases supported by thisUsagePoint.
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:
CurveCurveDataEarthFaultCompensatorGroundingImpedancePetersenCoilReactiveCapabilityCurveRotatingMachineSynchronousMachine
- Added the following Gql classes to support data model change:
GqlCurveGqlEarthFaultCompensatorGqlGroundingImpedanceGqlPetersenCoilGqlReactiveCapabilityCurveGqlRotatingMachineGqlSynchronousMachine
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/customersGraphQL endpoint for querying data held by theCustomerService. This is a separate endpoint which requires specific authorisation for accessing customer data.- This endpoint only implements queries
getIdentifiedObject,getIdentifiedObjects,findIdentifiedObjects,findIdentifiedObjectsByName, andgetMetadata.
- This endpoint only implements queries
- Added bounding boxes to GraphQL responses. A
BoundingBoxwill 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
debugconfig -logExceptionwhich will log the stacktrace when EWB returns an internal server error in the catch all route
Enhancements
- The
debugoptionslogExceptionsandlogRequestsis now enabled by default - Added
specialNeedtoCustomerto capture any special needs of the customer, e.g. life support.
Fixes
- None.
Notes
- None.
[2.17.1]
Fixes
- Fixed an error where
designTemperatureanddesignRatingfields were throwing aMethodNotFoundexception 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.addNamehas been refactored to take in aNameTypeand aString. This is doing the same thing under the hood as previousaddName()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))orobj.addName(nameType.getOrAddName("name", obj))becomesobj.addName(nameType, "name")addName()/removeName()related function for bothIdentifiedObjectandNameTypewill 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:
CurrentRelay→ProtectionEquipment. becomesCurrentRelay→ProtectionRelayFunction. - Removed symmetric relation
ProtectionEquipment↔ProtectedSwitch. - Renamed
CurrentRelayInfotoRelayInfo.- The override
assetInfo: RelayInfo?has been moved fromCurrentRelayto its new parent class,ProtectionRelayFunction. - Renamed
RelayInfo.removeDelaytoRelayInfo.removeDelayAt. The original method name has been repurposed to remove a delay by its value rather than its index.
- The override
- Reworked values for enumerable type
ProtectionKind.
- The database has been split into three databases:
- The existing database containing the network model (
*-network-model.sqlite) with classes in thenetworkpackage. - A new database containing the customer information (
*-customers.sqlite) with classes in thecustomerpackage. - A new database containing the diagrams (
*-diagrams.sqlite) with classes in thediagrampackage.
- The existing database containing the network model (
- Renamed the following tables (and their associated indexes):
battery_unittobattery_unitsphoto_voltaic_unittophoto_voltaic_unitspower_electronics_connectiontopower_electronics_connectionspower_electronics_connection_phasetopower_electronics_connection_phasespower_electronics_wind_unittopower_electronics_wind_unitstransformer_star_impedancetotransformer_star_impedances
- All GraphQL tracing queries have new signatures and response types.
- The filename of the
results cachedatabase has been changed toresults-cachefromresults_cache. Any existingresults cachedatabase files will need to be renamed toresults-cacheto continue to be used. - The Azure auth configuration is now using the term
EntraIDinstead, so use 'entraid' in the auth method config.
New Features
- Metadata can now be retrieved via the GraphQL end point using the
getMetadatafunction. - Added
getMetadata()gRPCs to*ConsumerServicefor providing service information to clients. - Loading of the
customersdatabase can be disabled with the newewbData.excludeCustomersconfiguration 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 controllingProtectedSwitches.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.previousDaysToSearchForDiagramto control the number of days prior to the date of thenetwork-modeldatabase being loaded to search for adiagramsdatabase, if an exact match did not exist. - Added configuration option
ewbData.previousDaysToSearchForCustomerto control the number of days prior to the date of thenetwork-modeldatabase being loaded to search for acustomersdatabase, if an exact match did not exist. - Loading a
network-modeldatabase of a specific date can be accomplished with the newewbData.networkDateconfiguration option. When provided,ewbData.previousDaysToSearchForNetworkis ignored and EWB will only load anetwork-modeldatabase of that exact date. The behaviour ofewbData.previousDaysToSearchForDiagramandewbData.previousDaysToSearchForCustomeris unchanged.
Enhancements
- Added
designTemperatureanddesignRatingtoConductorto capture limitations in the conductor based on the network design and physical surrounds of the conductor.
Fixes
findIdentifiedObjectsand/network/api/v1/findAPIs 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
permissionsKeyset 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.
- IsolationTrace now supports undirected network (sub-trans), as long as you provide equipment
- Notables:
- 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
allowAllPermissionswhich 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-typeheader toallowed headersin 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:
CurrentTransformerCurrentTransformerInfoPotentialTransformerPotentialTransformerInfoProtectionEquipmentCurrentRelayCurrentRelayInfoSwitchInfoRecloseSequence
- 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.
normalPhasesandcurrentPhases(traced phases) are now exposed through GqlTerminal
Fixes
- From SDK 0.14.0: Fixed limited connected traces with
maximumSteps = 1were 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.
Feederinstances are now only assigned to HV/MV equipment.LvFeederinstances are assigned to LV equipment.- The REST API call
feeder-assetshas been made backwards compatible by including equipment in LV feeders energized by the specified HV/MV feeder.
- The REST API call
- The GraphQL
Equipment.currentFeedersfield has been replaced withEquipment.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 inmRIDs. This is of the enum typeIncludedEnergizingContainers, which has three possible values:EXCLUDE_ENERGIZING_CONTAINERS: No additional effect (default).INCLUDE_ENERGIZING_FEEDERS: Include HV/MV feeders that power LV feeders listed inmRIDs.INCLUDE_ENERGIZING_SUBSTATIONS: In addition toINCLUDE_ENERGIZING_FEEDERS, include substations that energize a HV/MV feeder listed inmRIDsor included viaINCLUDE_ENERGIZING_FEEDERS.
includeEnergizedContainers: Specifies whether to include equipment from containers energized by the ones listed inmRIDs. This is of the enum typeIncludedEnergizedContainers, which has three possible values:EXCLUDE_ENERGIZED_CONTAINERS: No additional effect (default).INCLUDE_ENERGIZED_FEEDERS: Include HV/MV feeders powered by substations listed inmRIDs.INCLUDE_ENERGIZED_LV_FEEDERS: In addition toINCLUDE_ENERGIZED_FEEDERS, include LV feeders that are energizes by a HV/MV feeder listed inmRIDsor included viaINCLUDE_ENERGIZED_FEEDERS.
-
Added an
isSwerflag 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
-s0or--suppress-zero-lengthcommand line option. - Added
seriesNameattribute 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 previousOK [200]response. BusbarSectioninstances are now rendered by the Mapbox vector tiling engine as lines on a newbusbarslayer, rather than as points on thenodeslayer.
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.
DiagramandDiagramObjectinstances are now accessible through the GraphQL API.- Added the following GraphQL queries:
getAssetInfo: Returns allAssetInfoandPerLengthLineParameterobjects 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 theirnameand NMInametype.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
connectionPointIdentifiersetting is now correctly passed to the network API. SetPhasesno 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
connectionPointIdentifiersetting 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.
PowerTransformerinstances are now distinguished using theirfunctionrather than an associatedDiagramObject.- Updated
isPrimaryflag in old JSON API's to referenceisExternalGridrather than anEnergySourcehaving any associatedEnergySourcePhase. - Feeder API's that return
infeedswill now return the head of the feeder rather than the external grid source. - Renamed
PhaseDirectiontoFeederDirection:INrenamed toUPSTREAMOUTrenamed toDOWNSTREAM
- Separated feeder direction from phase.
- Direction has been removed from
TracedPhasesand is now accessed directly off theTerminal. - Direction has been removed from
PhaseStatusand is now accessed viaDirectionStatus.
- Direction has been removed from
- The following
Terminalfields are now Kotlin properties rather than accessor functions:connectivityNodeIdisConnectednormalPhasescurrentPhases
PhaseCode.singlePhasesis 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 toNMIif not specified. PowerTransformernow has afunctionandconstructionKind.
Enhancements
- Updated GQL filtering mechanism to allow more precise matching of objects.
- Expanded the number of fields available for a
StreetAddress - Added fields to
EnergySourceto 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_unitphoto_voltaic_unitpower_electronics_wind_unitpower_electronics_connection_phase
Notes
- None.
v2.9.0
Breaking Changes
- All classes will now send their class name via the REST API rather than
BasicNodeif 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.styleto be a string and removedDiagramObjectStyleenum. - 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:
EquivalentBranchNoLoadTestOpenCircuitTestShortCircuitTestShuntCompensatorInfo
- Added
isVirtualandconnectionCategoryto `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:
BusBarSectionLoadBreakSwitchTransformerEndInfoTransformerTankInfoTransformerStarImpedance
-
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/authSee the API documentation for details.
Enhancements
- All files in
configdir underwebrootis 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, andclientAuth. - 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
nameproperty 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=truequery 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
includeReadingsoption 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.