Release History
Version | Date |
---|---|
2.1.0 | 22 October 2024 |
2.0.0 | 27 October 2022 |
1.15.0 | 28 July 2022 |
1.14.0 | 21 June 2022 |
1.13.0 | 08 March 2022 |
1.12.0 | 20 January 2022 |
1.11.0 | 20 January 2022 |
1.10.0 | 19 January 2022 |
1.9.0 | 17 January 2022 |
1.8.0 | 08 December 2021 |
1.7.0 | 09 November 2021 |
1.6.0 | 25 October 2021 |
1.5.0 | 23 September 2021 |
v2.0.0
Breaking Changes
- Removed support for self auth.
New Features
- Added functionality to create and manage power-factory-models.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.15.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.14.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- Fix bug where studies and faults published by no-auth users are filtered out of queries
Notes
- None.
v1.13.0
Breaking Changes
- Updated to find the relocated connection point identifier. You will need to use a EWB server running a database generated from an updated migrator for this to work.
New Features
- The EWB connection point identified can be specified via the config file via the
ewb.connectionPointIdentifier
setting.
Enhancements
- None.
Fixes
- Made less cryptic error messages for malformed sealed object configurations (specifically
"auth"
inconfig.json
).
Notes
- None.
v1.12.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.11.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.10.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.9.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.8.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.7.0
Breaking Changes
- None.
New Features
- None.
Enhancements
- None.
Fixes
- None.
Notes
- None.
v1.6.0
Breaking Changes
- None
New Features
- None
Enhancements
- None
Fixes
- None
Notes
- None
v1.5.0
Breaking Changes
- None
New Features
- None
Enhancements
- None
Fixes
- None
Notes
- None
Breaking Changes
Updated the hosting capacity service logic to import the work package configuration from the hosting-capacity-utils library instead of duplicating all the required classes.
mapLayerColors has been superseded by
defaultMapLayerColors
,themes
, anddefaultTheme
. If you previously specified layer colors you will have to update your configuration to match the new options. Seeconfig.md
andsample-config.md
for information on the new settings and examples.Coloring lines by voltage now requires specifying a range of voltages. Previous
voltageColors
configuration is not compatible with the new required format and will need to be updated.API calls will now return Bad Request (502) instead of InternalServerError (500) when EWB cannot be contacted.
Updated GqlWorkPackageInput to have its 'modelConfig' property to be non-nullable.
Updated ModelConfig to include fixed time and time period.
Updated to evolve-super-pom version
0.35.2
.Updated H2 database engine from
1.4.200
to2.2.224
. See https://www.h2database.com/html/migration-to-v2.html for more details.The following columns in the schema have been converted from
TEXT
toCLOB
:net_models.generation_spec
(Now namedpower_factory_models.generation_spec
; see other breaking changes)net_model_templates.generation_spec
(Now namedpower_factory_model_templates.generation_spec
; see other breaking changes)result_sections.description
studies.description
studies.tags
Upgrade Jetbrains exposed from
0.38.2
to0.48.2
. See https://github.com/JetBrains/Exposed/blob/main/docs/ChangeLog.md for more details.Configuration for the EWB auth has changed:
- To use a specific issuer, provide
method
,issuer
,audience
,clientID
, andclientSecret
parameters. Make sureaudience
andclientID
match the values expected by EWB. NOTE if using Managed Identity, skip clientSecret, and only provideclientID
.
- To use a specific issuer, provide
Configuration for EAS auth has changed (consult the docs if needed):
- For EntraID and Auth0, provide the following parameters:
method
("entraid" or "auth0")trustedIssuers
audience
- For EntraID and Auth0, provide the following parameters:
Removed Fault Location module
FaultLocationService
.EAS is now exposing the same auth config endpoint to clients as EWB (Note: only the first configured trustedIssuer will be returned):
* `authType`
* `issuer`
* `audience`This is a breaking change for the clients expecting
tokenPath
,issuerDomain
orconfigType
.EAS now uses a Role based permissions system:
- Users requests now must provide External Roles in their access token that inherit the permissions required to perform the request.
- Existing REST API endpoints have been updated with new permission requirements, see docs for complete list.
- Existing GraphQL API queries have been updated with new permission requirements, see docs for complete list.
- Auth configuration is now required for EAS to start.
- For Auth type
None
,defaultUserPermissions
has been removed and replaced bydefaultUserRoles
. These roles must exist and have the relevant permissions in the EAS database. The default roles and permissions are populated when the EAS database is initialised byupdateSchemaOnStart
(see docs for a complete list of default roles). - Auth type
None
no longer provides access by default. If nodefaultUserRoles
are configured, only requests that don't require any permissions will succeed. - Auth type
AUTH0
,ENTRAID
, no longer havepermissions
option. - Default External Roles:
SUPER_ADMIN
,EWB_ADMIN
,TIMESERIES_MODELLER
,MODELLER
,DEVELOPER
,MAP_VIEWER
,METRICS_VIEWER
,INTEGRATION_ADMIN
.
Removed
/api/user/createUser
and/api/user/queryUser
http endpoints.Removed Evolve Gateway DER Service functionality.
evolveGateway
configuration options and DER related http endpoints have been removed, including/api/config/der
,api/der/tile/{z}/{x}/{y}
,api/der/asset/{nmi}/
andapi/der/logo/{aggregatorName}
.Renamed all instances of "net model" to "power factory model":
NetModel
→PowerFactoryModel
netModel
→powerFactoryModel
net-model
→power-factory-model
net_model
→power_factory_model
NET_MODEL
→POWER_FACTORY_MODEL
netmodel
→powerfactorymodel
This was done to reduce confusion with the Sincal Model Service.
Removed
auth.issuer
configuration option. Replaced byauth.trustedIssuers
that accepts a list of issuer domains.Updated to ewb-conn-jvm version
0.11.0
to support trusting tokens from multiple issuers.Updated to evolve-sdk-jvm version
0.23.0
to support new version of ewb-conn-jvmIn a Power Factory Model Export, the LoadConfig value is now set and passed on to the Power Factory Model Service (and on to the exporter).
Updated
hostingCapacity
configuration options. This now accepts:service
- Hosting Capacity service connection information (what was previously configured directly inhostingCapacity
).resultsDatabase
- Hosting Capacity Results Database connection information.
Renamed
defaultUserId
todefaultUsername
.
New Features
- Configuring voltage colors now supports a range of voltages for a color. If a conductor has a color that doesn't match any range a default can be specified
through the
missingVoltage
option. - Added
defaultMapLayerColors
which allows you to specify a set of default colors to be used on the map. - Added support for themes through the
ui.themes
configuration. Each theme is a mapbox theme and can have its own set of color definitions through thelayerColors
option. See config.md for details on how to configure themes. - Added support for specifying a default map theme with
ui.defaultTheme
- Added support for specifying colors for partially off supply lines through the
partiallyOffSupply
option. - Added basic hosting capacity functionality. At this stage only one graphql mutation exists with the purpose of running hosting capacity work packages.
- Added the functionality to specify
spreadMaxDemand
as part of a NetModelGenerationSpec. - Added the functionality to specify whether
transmission
network should be included as part of a NetModelGenerationSpec. - Filename from User input is pass on for power factory model generation.
- Hosting capacity work package run request now supports more configuration options.
- Added functionality to cancel hosting capacity work packages.
- Added functionality to request progress of currently running work packages.
- Added 'calibration' flag to ModelConfig.
- Added new fields to
GqlHcModelConfig
that are passed through toModelConfig
. Consult opendss-model-processor docs for details.- pFactorBaseExports
- pFactorForecastPv
- pFactorBaseImports
- fixSinglePhaseLoads
- maxSinglePhaseLoad
- fixOverloadingConsumers
- maxLoadTxRatio
- maxGenTxRatio
- fixUndersizedServiceLines
- maxLoadLineRatio
- Add support for logging in with Microsoft EntraID
- Add support for M2M auth to EWB with Microsoft EntraID
- Added the functionality to control the network-model loaded by EWB. This can be used via the following GraphQL mutations.
switchNetworkModelDatabase
Restart EWB with the network-model of the specified date. Following the restart EWB will remain "locked" to the specified date.lockNetworkModelDatabase
Locks the EWB network-model date to the currently loaded model. If EWB restarts for any reason, it will continue to reload the "locked" date instead of the latest available.unlockNetworkModelDatabase
On next restart EWB will load the latest network-model available in the data path instead of the date it was previously "locked" to.
- Added Admin page routes
- Added optional connection to a metrics database. This is configurable through the
metricsDatabase
option. - Added a /metrics route, which serves the frontend static assets. The frontend can then load a new Metrics page at this route.
- Added
collapseLvNetworks
field to ModelConfig - Added
feederScenarioAllocationStrategy
field to ModelConfig - Added
includeEnergyConsumerMeterGroup
field to ModelConfig - Added GraphQL queries and types for the metrics database.
- EAS now uses a Role based permissions system.
- Added
permissions
field to the response of thecurrentUser
GraphQL query. This field contains a complete list of permissions inherited by the External Roles provided in the access token used to make the request (ordefaultUserPermissions
ifNone
auth is configured). - Added GraphQL queries and mutations for Sincal Model management.
- Added routes for downloading Sincal models and logs.
- Added support for accepting client tokens from multiple issuers simultaneously. Multiple issuers can now be provided via the new configuration option
auth.trustedIssuers
. Note: Only the first issuer is returned to clients via/config/auth
. - Added new feature flags
sincalExporterEnabled
andpowerFactoryExporterEnabled
inconfig.ui
section for PowerFactory/Sincal Exporters. Note: When enabling the flag, they require relevantpowerFactoryExporterOptions
orsincalExporterOptions
. - Added optional connection to a Hosting Capacity Results Database. This is configurable through the
hostingCapacity.resultsDatabase
option. - Added the following GraphQL queries for retrieving information from the Hosting Capacity Results Database
getOpportunity
- Retrieve an Opportunity by ID.getOpportunityLocations
- Retrieve all opportunity locations available for a specific year. (opportunity locations for all years if a year is not specified).getOpportunitiesForEquipment
- Retrieve Opportunities attached to the supplied conducting equipment mRID.getOpportunities
- Retrieve all Opportunities available for a specific year (Opportunities for all years if a year is not specified).getDurationCurves
- Retrieve duration curves for a single piece of equipment in a specific SYF.
- Added
workPackageName
parameter torunWorkPackage
which represents the name of the work package. This parameter is now mandatory. - Updated the
runHostingCapacityWorkPackage
to accept theworkPackageName
field as a parameter for storing the work package name and entries in the database. - Hosting capacity work packages created via EAS are now recorded in the
hosting_capacity_work_packages
database table. - Added new
getWorkPackages
GraphQL query to support:- Pagination.
- Searching by id, name, and createdBy.
- Added support for partial matching on the name
- Returning work package details such as:
- status: Progress percentage if in progress.
- description, created_at, updated_at, parent_id.
- Added
getWorkPackageById
GraphQL query to indicate work package progress with all other information.
- Added the following configuration option to generate jwks keys for Personal Access Tokens for EAS:
jwks
- Configuration for generating jwks keys for Personal Access Tokens.currentUserSigningKey
- The key name used to sign the Personal Access Tokens for users.currentMachineSigningKey
- The key name used to sign the Personal Access Tokens for machines.issuer
- The url of the issuer for the Personal Access Tokens.
- EAS now provides the OpenID configuration endpoint at
/.well-known/openid-configuration
and JWKS endpoint at/.well-known/jwks
for verifying Personal Access Tokens issued by EAS. - Added functionality to allow EAS to trigger container based network ingestion tasks to generate new EWB Network Models. The container service to use is
configured by providing a
Ingestor
config object (seeIngestor Service Config
inconfig.md
for full details). The ingestion tasks themselves can be triggered by the new GraphQL mutationexecuteIngestor
. - Added GraphQl mutation
executeIngestor
to initiate a new network ingestion. Calling this mutation requires the permissionINGESTOR:RUN
. - Added
getWorkPackageTree
GraphQL query that takes a work package id and returns its ancestors and immediate children. - Added
createUserApiKey
GraphQL query to create user Personal Access Tokens/API keys:createUserApiKey
- Creates a new user Personal Access Token for the user making the request and takes the following parameters:roles
- Array of roles to delegate to the new Personal Access Token. Must be a subset of the user's existing roles.tokenName
- Included in the newly created token as thetkn
claim. This cannot be blank and can only include lowercase characters, numbers, dashes-
, and underscores_
, with a max length of 32 characters.
- Added support for passing a
seed
in the ModelConfig for a work package. - Added support for "Public Access" mode to allow limited access to unauthenticated users alongside regular authenticated users. This can be enabled, and permissions
configured, by adding a
publicAccess
object(Seeconfig.md
for full details.) to theauth
config block. Note: Regardless of the permissions granted to unauthenticated users, unauthenticated requests for map tiles will always be directed to the EWB public tile endpoint/ewb/network/graphics/api/v1/mvt/geo-view/public/{x}/{y}/{z}
instead of the regular tile endpoint/ewb/network/graphics/api/v1/mvt/geo-view/{x}/{y}/{z}
. - Added the GraphQL query
getPublicGeoViewConfig
to expose the GeoViewConfig used to configure the EWB public map tile endpoint. The returnedGeoViewConfig
Json object is encoded to as string. - Added new GraphQL mutations to generate diffs between hosting capacity work package results
generateNetworkPerformanceDiff
- Generate diff for data from network_performance_metrics table and insert them into network_performance_metrics_diffgenerateEnhancedNetworkPerformanceDiff
- Generate diff for data from network_performance_metrics_enhanced table and insert them into network_performance_metrics_enhanced_diff
- Added
createMachineApiKey
GraphQL query to create machine Personal Access Tokens/API keys:createMachineApiKey
- Creates a new machine Personal Access Token for the user making the request and takes the following parameters:roles
- Can be any external role unlikecreateUserApiKey
which takes a subset of the user's external roles.tokenName
- Included in the newly created token as thetkn
claim. This cannot be blank and can only include lowercase characters, numbers, dashes-
, and underscores_
, with a max length of 32 characters.
- Added
editWorkPackage
GraphQL mutation to edit work package name and description. Calling this mutation requires the permissionHC_WORK_PACKAGE:UPDATE
Enhancements
- Updated vulnerable dependencies to latest version (H2, Postgres, Liquibase, Jackson, SnakeYAML)
- Added config option in AppConfig Ui to enable/disable work package browser option as workPackageBrowserEnabled
- Better error messages when attempting to update/delete PowerFactory/Sincal models/templates/presets as someone who isn't the owner
- Migrate eas to new config pattern using
kotlinx.serialization
for deserializing the json file
Fixes
- Errors are now returned to the client for hosting capacity calls.
- Upgraded ktor to fix hanging request issue
- Fixed execution order of SQL migration scripts
- Updated default
H2
database connection string to includeDATABASE_TO_LOWER=TRUE
. - Fixed issues caused by incorrect method of getting username from Entra ID JWT.
- Fixed issue where boolean is returned instead of ID of deleted template for
deletePowerFactoryModelTemplate
mutation.- An error is now returned in the GraphQL response for this mutation if the current user is not the owner of the template.
- Make WorkPackagesProgress serialisable so it can be returned from the getWorkPackageProgress endpoint
Notes
- The REST endpoint
/api/map/symbol/{symbolPath...}
does not requireEWB:READ
permission. Its use only requires an authenticated user or that "Public Access" is enabled.\n\n---\n