Skip to main content

Version 1.3.0+

These are the release notes for the v1.3.0 release of witboost.

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

Features

Wizard Editor

The editor wizard feature allows users to directly use the witboost UI to edit a component or a data product, instead of manually doing so in the catalog-info.yaml file, preventing validation errors.

Users will be able to edit only the fields of a specific entity declared by the platform team, using the pickers provided by witboost. At the end of the process, the new catalog-info.yaml is compared with the old one, with the possibility to save changes on the repository.

The provided documentation comprises:

  • A user manual that explains what editor wizard is, how it functions, and how to execute it.
  • A platform team manual that guides configuring and enabling the editor wizard for a set of entities.

Custom URL Picker

The Custom URL Picker is a special picker to insert in your templates that empowers users to select some values retrieved from an external microservice.

This picker can send different parameters to the remote microservice: fixed ones read from configuration (static) or read from other fields of the template (dynamic).

This picker allows different levels of customization, like: ti enables users to insert their values without selecting the ones from the external microservice, it can specify different endpoints to invoke, it can display different values as the resulting table's columns, etc.

For additional info, check out the documentation.

Create nonexisting groups in the Gitlab action

While using templates, if you are using GitLab as your version control platform and providing ExistingGroup/NonExistingGroupOne/NonExistingGroupTwo in the User/Group field when creating a data product or component, the NonExistingGroupOne and NonExistingGroupTwo will be created automatically, instead of failing.

This will only be done if the token provided has the corresponding rights to create subgroups.

New template styles

Introduced three new layouts for templates:

  • ui:ArrayFieldTemplate: ArrayTableTemplate and ui:ObjectFieldTemplate: TableRowTemplate These properties can be used in array and object fields to display complex arrays as tables. They should be used for schema values.
  • ui:ObjectFieldTemplate: HorizontalTemplate This template property can be added to objects to display their content horizontally instead of vertically

These layouts can be used to customize even further templates to improve the user experience.

Also, for string inputs, the 'multiline' prop transforms the text field into a text area. It's possible to define the number of rows with the 'rows' property. It is possible to define a maxLength property for every text field, to prevent errors when it contains too many characters.

We also revamped the template page to be more in line with our design system.

All fields displayed on the marketplace page

All first-level fields are now shown automatically for data products and output ports.

When upgrading to this version, all fields appearing at the root level for both data products and output ports will be automatically shown to users of the marketplace. If you wish to hide some of them, you can list their paths with the excludeDescriptorPaths configuration property.

Here there are some suggested configurations to start with:

mesh:
marketplace:
ui:
outputPortPage:
generalInfo:
excludeDescriptorPaths:
- id
- kind
- name
- outputPortType
- useCaseTemplateId
- infrastructureTemplateId
- provisioningResult
dataProductPage:
generalInfo:
excludeDescriptorPaths:
- id
- kind
- email
- status
- version
- devGroup
- domainId
- ownerGroup
- dataProductOwner
- useCaseTemplateId
- infrastructureTemplateId
- dataProductOwnerDisplayName

Entity picker can now filter users and groups for the current user

It is now possible to filter User and Group entities by current user ownership in:

  • the access request dialog (using mesh.marketplace.ui.accessControl.showOnlyUserOwnGroups)
  • all the entity pickers on templates (using showOnlyUserOwnGroups as ui:option)

Create components directly from the Data Product details page

Introduced the "Add" button on the data product page which redirects you to the scaffolder page (but also carries some data that prefills any template that you select). When you click on the Add button, you are first shown all the template types available (output port, workload, storage, etc) and then you are shown a few examples of those templates in the submenu (if there are no templates of that type, that type will not be shown at all).

Pagination of provisioning plans

The control panel is updated to load the provisioning plans using a paginated API. This will improve the performance of the page loading in case there are a lot of plans associated with a data product.

At the same time, we paginated also the retrieval of all the releases associated with each data product. In this way, the user will see the latest ones first and will load older ones only in case of need.

This, and the pagination of plans, will load the control panel much faster.

Clickable tags in the marketplace

Tags are now clickable on the Marketplace page when they have the href field. The field contains the remote link that will be opened if starting with "http", or internal otherwise.

Block a domain unregistering when the domain is not empty

We released a new feature that blocks domain unregistering if the domain is not empty. A domain is not empty if the domain has a data product registered. In the marketplace, if the data product has a null value in the domain column (for example if the domain was deleted) the string "Unassigned" will be displayed. Upon attempting to unregister a location that contains a domain, you will be shown an error message.

  • The feature is disabled by default, so there are no breaking changes. To enable it, set in configuration the following line:
catalog:
disableNonEmptyDomainUnregister: true

as written in the documentation.

Number in the entity names

Now users can use numbers in the entity names. The platform team may need to update the description of the templates if they explicitly forbid numbers.

Block unregistering of a deployed data product

We released a new feature that blocks the unregistering process if the location contains a data product currently present in the marketplace.
The feature is disabled by default. To enable it, set in configuration the following line:

catalog:
disableDeployedDataProductUnregister: true

as written in the documentation.

Configure processing interval

You now have the option to customize the frequency of entity processing. This refers to how frequently Witboost reads the repositories and refreshes the entities. The default time interval is set to 100 seconds. To customize this, set the following configuration:

mesh:
catalog:
processingIntervalSeconds: 100

Configure mapping for tags

By changing the mesh.mapping.tag configuration, you can decide how tags will be displayed (both generic tags, and schema tags). The configuration acts at display, tooltip, and search level, and for the first two you can define nunjucks templates to render the content dynamically.

Issues Fixed

  • All editors in the product now use monaco editor, which improves dramatically the editor experience
  • Fixed some bugs related to the undeploy button visibility
  • Fixed some wrong columns in the software catalog
  • Solved a bug that prevented the snapshot creation when the version was undefined
  • Fixed some bugs with blueprints that reported the wrong statuses while compiling
  • In the policies creation wizard, now tags are correctly removed when the sub-resource identifier is removed
  • Restyled the application with a new typography and logo
  • Fixed an error with cron validation for policies (month range is now 1-12)
  • Fixed a bug when displaying all the subdomains of a parent domain
  • Updated the way issue types are displayed in the software catalog
  • Updated the search and filter mechanism for the software catalog table's columns
  • Fixed a bug that made long URLs inserted in the UrlPicker freeze the application
  • Restyled the template wizard, to prevent names that went out of bounds when the text was too long
  • Fixed a bug that prevented all the connections from being loaded in the marketplace data product's graph
  • Added the snapshot version for all the deployments in the provisioning plans displayed in the control panel
  • Changed "DP" with "Data Product" on all the pages for clarity
  • Updates the way flags are shown in case the logged user has no permission to see them
  • The sorting of table columns is now consistent when the value is different from the displayed label
  • Now users can use numbers in the entity names
  • Made the description field in the marketplace accept newline chars
  • Fixed a bug that made tags disappear from the marketplace
  • You can now optionally configure some parameters regarding the frequency of the search index refresh process: backend.search.index.frequency, backend.search.index.timeout, backend.search.index.initialDelay
  • In the marketplace, the search index now disables caching when not needed
  • Added a new RBAC rule to show resources when no domain is associated with them to all users, and only to users belonging to that domain when it is defined
  • Minor UI fixes in the marketplace page
  • Replaced a regular expression checker with a simpler mechanism that allows special characters in the search for tables
  • Fixed a bug that prevented the platform from inserting a notification if an uppercase letter was found inside the platform name
  • Both tables in settings Permission Table and Role Table along with their drawers now handle the case in which entity_ref is null in the table
  • Fixed the hint message under cron fields to reflect that the Day of Week value has a range of 0-6 where 0 is Monday
  • Fixed a bug that caused the audit plugin to throw an error when calling the parsing mechanism with a server token
  • Better explanation of how microfrontends should be implemented to avoid rendering problems. In particular, microfrontends should always define a seed for the generated class names so they don't collide with existing ones
  • Added error messages to unauthorized responses
  • The field errors in EvaluationResult is now optional
  • The new version's endpoint now passes a server token to create a notification by event
  • Added a notification to inform data product owners and consumers of a failed/succeeded ACL request
  • Updated the environment order in the marketplace by priority
  • Added additional filters selector in governance test registry section
  • Fixed an inconsistency in the URN generation for RBAC policies
  • The witboost search is now able to search for all DPs that have a certain tag, both in the marketplace and in the builder. To search in the tags you need to put the exact value you would like to search for
  • Domains in the navigation panel are now alphabetically sorted
  • The permission table in settings now correctly displays values
  • Reduced the number of provisioning plans fetched and improved the memory footprint
  • The test panel now informs you about a successful test with "Success" instead of "Test completed"
  • Description fields now handle the return character correctly
  • The bitbucket server integration now correctly resolves the edit URL
  • The audit middleware now correctly handles badly formatted JWT tokens
  • Modified the EntitySelectionPicker to handle data types different from strings
  • Fixed Circe, Cue, Apache common, and Jackson dependencies to fix known vulnerabilities
  • Improved error handling in case of failed or timed-out execution plan tasks
  • When the data-catalog-provisioning configuration is enabled, is no longer mandatory to configure the data catalog plugin for all the environments
  • Modifications to a task state, after the parent execution plan is terminated, are now ignored
  • Cue now correctly evaluates descriptors that have accented letters, by normalizing them before evaluating
  • Fixed monday "day of the week" value on cron expressions
  • Handled double quotes in Cue scripts correctly
  • Fixed overlapping task executions on the workflow engine
  • Fixed the misalignment between runtime task status and persisted task status
  • Dangling execution plans are now terminated during application startup
  • You can now supply additional filters when testing a policy or a metric
  • Added possibility to set the admitted kinds by using configurations supported-kinds
  • Added a fixed order for independent tasks
  • Prevented the plan transition to a final status (e.g. FAILED) while some of its tasks are still running
  • Introduced a flag on endpoints used to retrieve provisioning plans that can be used to prevent returning data product descriptors
  • Optimized the query used to retrieve the top failed policies
  • Fixed sync validation plan completion condition
  • It is now possible to configure the scheduler timeout (30 minutes by default) through the configuration provisioning-coordinator.scheduler-execution-timeout
  • When an execution plan hits the timeout, its status and the status of all the tasks that are not completed (or failed) are set to Terminated
  • The zoned date time of logs received by specific provisioners is now converted to UTC before being persisted
  • Escaped all the new line chars from all the fields while converting the descriptor in the Hasura query
  • Stepper now scrolls up to the new section when changing step, for example when filling a data product template
  • Added content-type in the header of the retrieval and validation API of the Custom URL Picker
  • Fixed a bug where the ReservedFieldsProcessor would crash if trying to remove a duplicate with no previous annotations
  • WbTags now shows description on mouse hover, instead of the tagFQN again
  • Fixed Template Editor crashing when no input is provided
  • Priority selectors in marketplace and governance tables should now be more consistent
  • Fixed a bug that prevented URNs of domains from containing hyphens
  • Fixed a bug with Microfrontends that do not load properly when the page is on the marketplace menu
  • Fixed a bug with the regex picker not showing the placeholder
  • Fixed the behavior of the enum picker with enumNames property that was causing the wizard to be unable to go to next step
  • Added authentication to the scaffolder endpoints