Skip to main content

Version 0.4.0

These are the release notes for the v0.4.0 release of witboost.

Please refer to the official documentation for a more in-depth overview of the released features.

Features

Display of provisioning Technical Information

The Specific Provisioner contract has been updated to include an additional return field. This allows Specific Provisioner's developer to return additional information in the deployment operation that can be shown in the Marketplace UI.

The new contract of the Specific Provisioner let a developer return results in the form:

{
"status": "string",
"result": "string",
"deployInfo": {
"publicInfo": {
...
},
"privateInfo": {
...
}
}
}

Where publicInfo and privateInfo are free objects where anything can be returned. If a Specific Provisioner wants to return something that is displayed in the Marketplace UI, simply add the fields in the publicInfo object (fields added in the privateInfo will not be displayed).

To display fields in the Marketplace UI, the Specific Provisioner should add them in the publicInfo object using a dedicated format to represent strings, links, and dates. Here you can find details of how you should structure the status to include each of those types of information (the UI uses the "type" field to understand how to display the filed in the UI).

  1. To show in the UI a string field with label "MyString" and value "MyValue", just return the following "deployInfo" object:
{
...
"deployInfo": {
"publicInfo": {
"aString": {
"type": "string",
"label": "MyString",
"value": "MyValue"
}
},
"privateInfo": {}
}
}
  1. To show in the UI an anchor field with label "MyLink" and value "MyValue" that once clicked forwards the user to "http://my.remote.url", just return the following "deployInfo" object:
{
...
"deployInfo": {
"publicInfo": {
"aLink": {
"type": "link",
"label": "MyLink",
"value": "MyValue",
"href": "http://my.remote.url"
}
},
"privateInfo": {}
}
}
  1. To show in the UI a date field with label "MyDate", just return the following "deployInfo" object (the value must be in ISO UTC instant format yyyy-MM-ddThh:mm:ssZ):
{
...
"deployInfo": {
"publicInfo": {
"aDate": {
"type": "date",
"label": "MyDate",
"value": "2011-12-03T10:15:30Z" //ISO UTC INSTANT
}
},
"privateInfo": {}
}
}

In the UI, you can choose also additional fields structured in the way presented above that will be shown in the "Technical Information" card in the Marketplace: simply add which objects in the descriptor contain such fields in the configuration array mesh.marketplace.ui.outputPortPage.technicalInformation (by default only the buildInfo and deployInfo are displayed).

Role Based Access Control updates

In this release of witboost we made some changes to improve the user experience with Role-Based Access Control. In particular, we focused on the following improvements:

  1. Simplified the handling of permissions linked to the logged user, thus reducing the size of JWT tokens;

  2. Introduced a new field for role associations called enabled to enable/disable a grant. If set to false the role-subject association is disabled and won't make any effect on the subject.

  3. Added a new configuration that lets installer choose which Hasura role will be used by the product when querying using GraphQL APIs. By setting this configuration, you can define which Hasura claims will be included in the JWT. First of all a lists of all allowed roles for the user; then, if you specify a list of allowed roles (even just one), it is mandatory to specify a default role to be picked during requests.

  4. A new Scaffolder action for RBAC role association is available. This action (and a picker we created) let you customize your templates by adding an additional step that lets you add roles to specific users and/or groups. The RBAC Scaffolder Action, simply called RBAC Action, enables the integration of RBAC inside template wizards. This way, a template can be configured to, not only scaffold a brand new entity inside the catalog, but also create users permissions for that entity. Check teh documentation for more details on this topic.

Standard theme revamp

We changed a bit the UI look&feel in order for it to be cleaner and easier for users.

The main improvements are linked to the Data Product pages in the Builder and in the Marketplace, and they should make the UI more appealing to use.

Issues Fixed

  • RBAC now handles both subjects formats (namespaced subjects and implicit namespace subjects).
  • Notify consumer components owners when a new version is released.
  • Moved the Policies menu into a governance super-menu and updated the menu icons.
  • Increased spacing between menus.
  • Improved the descriptor preview error message handling when a user is not found.
  • Solved an error happening when the repository path on scaffolding included a trailing slash.
  • Installers can now optionally configure the default role and allowed roles injected in the user JWT for Hasura.
  • Fixed incomplete validation message label on component creation wizard.
  • Fixed wrong documentation links.
  • Removed RBAC permissions from JWT token, thus fixing a TechDocs issue caused by huge permissions header in JWT.
  • Fixed the output port page breadcrumb error that happened when the user went back from the output port page to the data product one.
  • Fixed the broken select environment combo-box on the policy page.
  • Implemented the new UI spacing reducing the font sizes and re-arranging the pages' elements to improve the user experience.
  • Fixed a bug that used always a default witboost user for scaffolding initial commit.
  • Correctly displays the checkmark if the logged user has access to a component..
  • Fixed an error on data displayed in the last graph of the mesh supervision page.
  • Solved an error caused by a wrong domain URN in the association between roles and subjects.
  • Improved the deploy open panel operation.
  • Fixed a bug related to the same policy failure happening on multiple components.
  • EntitySelectionPicker can be disabled for free user input by using already existing allowArbitraryValues function in the template.yaml like we used for other pickers.
  • EntityPicker now has an option to hide like the EntitySelectionPicker.
  • Clarified scopes formats in the RBAC docs.
  • Increased payload size limit in Builder router so that it can accept payloads up to 10MB.
  • Improved the way witboost backend communicates with the Provisioning Coordinator. This solves an error that appeared in case a deployment failed for validation errors: since the error was not handled, the deploy operation failed with an error in another point of the code that couldn't find the right data. Now errors raised during the calls to the Coordinator should be handled correctly.
  • Displayed only the last 300 values in the Downtime charts.
  • Rationalized the provisioning plan which returned too many useless tasks.
  • Fixed a bug on provisioning persistence that raised an error with serialization.
  • Improved the method defined using the provisioning plan query that returned no task information.
  • Fixed an update statements that was incorrect, causing a task update to update all records instead of only to the related task id.
  • Fixed a migration script that raised a possible error in the provisioning plan query.
  • Changed the way migrations are handled by starting them during application startup.
  • Added code for handling deployInfo/buildInfo descriptor fields in the provisioner, and sending them to the marketplace plugin correctly.
  • Fixed the OpenAPI specification of the provisioner to make it compliant with standards.
  • Solved a bug that was generated from an unhandled error in the validation service.
  • Modified the data product validation error message to include more details.
  • Fixed questions removal in the marketplace plugin, which prevented the undeploy operation to complete.
  • Fixed the deployment update mechanism in the marketplace plugin that affected data products deployed multiple times.
  • Updated all the foreign key constraint during updates, insertions, and deletes, which affected the undeploy operation.